snaums.de - Moviehttps://www.snaums.de/2021-06-13T00:30:00+02:00Samsung NX300: Dissecting a Hacked Firmware2021-06-13T00:30:00+02:002021-06-13T00:30:00+02:00snaumstag:www.snaums.de,2021-06-13:/fotografie/samsung-nx300-disecting-a-hacked-firmware.html<p>I mentioned in an earlier blog post, that I'm working on the Samsung NX300(m) mirrorless cameras and trying to get some features to work. I outlined in that post a way to get unlimited movie record length. While this method seems to screw up the time remaining, recording always …</p><p>I mentioned in an earlier blog post, that I'm working on the Samsung NX300(m) mirrorless cameras and trying to get some features to work. I outlined in that post a way to get unlimited movie record length. While this method seems to screw up the time remaining, recording always stops just over the 4GB file size marker on my NX300m cameras.</p>
<p>Furtunately someone made a hacked formware [<a href="https://www.dpreview.com/forums/post/56754944">1</a>] for the NX300 cameras, which allows unlimted movie record times, and it seems to work fine at least on my NX300. The link [<a href="https://mega.nz/file/RAJCiIIZ#LappfCn1QSppxx9eu49DvTqS9GhvSYA_Edqr6S6o2ZA">2</a>] leads you to the download for this specific firmware.</p>
<p>In this blog post I'll dive into the differences of the hacked version and an official image of the latest version 1.45 of the firmware for the NX300 camera. This is gonna get technical, so grab your ARM Instruction Set Manual and join me on that journey.</p>
<h2 id="a-tale-of-two-binary-images">A Tale of two Binary Images</h2>
<p>It is hinted in the forum posts, that the firmware for the NX300 and the NX300M are packed differently. I already know, that Samsung shipped different software for the M-models, so I expect I cannot just copy over the hacked NX300 binary to the NX300M. However finding the differences between the original firmware and the one with unlimited video record length may give me a lead to what might be necessary for the same effect on the NX300M.</p>
<p>From the OpenSource-parts of the firmware of the NX300M I already know, that the binary I should be most interested in is the <code>di-camera-app-nx300m</code> or similar, which is the brains of the operation, managing the software modes and configuring the drimeIV ASIC to capture a photo, i.e. read-out the sensor and create an JPEG of that readout on the SD-Card, or capture a movie with sound and encode it as H.264 in mp4-files.</p>
<h3 id="unpackung-and-mounting-the-firmware-images">Unpackung and Mounting the Firmware Images</h3>
<p>First I need to unpack the <code>nx300.bin</code> firmware images and mount the linux root-filesystem of the camera in my system. I'm using an Arch Linux, so if you want to do the same (or similar thing) on a different distribution, your packages may be called differently.</p>
<p>To unpack the firmware images, I wrote myself a C-program (see below), <code>mmap</code>ing the header [<a href="https://sites.google.com/site/nxcryptophotography/diy-firmware">3</a>] of the firmware, finding the right offsets and using <code>dd</code> to extract the different parts. See, the firmware image is essentially a header and then <code>cat</code>ed files behind each other. The header contains the offset and size of each section in the firmware image.</p>
<p>The only file I'm actually interested in, is the <code>platform.img</code>, which contains the whole linux filesystem. The others are some kind of loaders and probably firmware for the drime4 itself. However it is not simply a copy of an ext4-filesystem to be mounted, it is a UBIFS, which is used for flash based filesystems.</p>
<p>Mounting the filesystem is a bit cumbersome, so I've written myself a Makefile. First the <code>nandsim</code> module is loaded, the platform.img is copied into the mtd0 device of the nandsim module, then <code>ubi</code> is loaded and mtd0 is attached to the ubi-driver. Lastly the ubi-device is mounted to <code>/mnt/ubi</code>, which allows us finally to view the goods inside.</p>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="nf">mount</span><span class="o">:</span><span class="w"> </span><span class="n">platform</span>.<span class="n">img</span></code></span>
<span class="code-line"><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"run as root"</span></span>
<span class="code-line"><span class="w"> </span>modprobe<span class="w"> </span>nandsim<span class="w"> </span><span class="nv">cache_file</span><span class="o">=</span>./temp_nand.dat<span class="w"> </span><span class="nv">first_id_byte</span><span class="o">=</span>0x20<span class="w"> </span><span class="nv">second_id_byte</span><span class="o">=</span>0xac<span class="w"> </span><span class="nv">third_id_byte</span><span class="o">=</span>0x00<span class="w"> </span><span class="nv">fourth_id_byte</span><span class="o">=</span>0x15</span>
<span class="code-line"><span class="w"> </span>dd<span class="w"> </span><span class="k">if</span><span class="o">=</span>platform.img<span class="w"> </span><span class="nv">of</span><span class="o">=</span>/dev/mtd0<span class="w"> </span><span class="nv">bs</span><span class="o">=</span><span class="m">2048</span></span>
<span class="code-line"><span class="w"> </span>modprobe<span class="w"> </span>ubi</span>
<span class="code-line"><span class="w"> </span>ubiattach<span class="w"> </span>-m<span class="w"> </span><span class="m">0</span><span class="w"> </span>-O<span class="w"> </span><span class="m">2048</span></span>
<span class="code-line"><span class="w"> </span>-mkdir<span class="w"> </span>/mnt/ubi</span>
<span class="code-line"><span class="w"> </span>mount<span class="w"> </span>-t<span class="w"> </span>ubifs<span class="w"> </span>ubi0_0<span class="w"> </span>/mnt/ubi</span>
<span class="code-line"></span></pre></div>
<p>You may need the package <code>mtd-utils</code> for mounting the image.</p>
<h3 id="finding-differences">Finding Differences</h3>
<p>Now the real problem starts. How to find differences in the image? I already know from the opensource package, that there are loads of libraries and the <code>di-camera-app</code>, which implement most of the cameras functionality. Then maybe there might be some files not present in one or the other.</p>
<p>So i've written myself a small, overengineered bash script md5ing all files and comparing the hashes against each other. The differences show in <code>/etc/version.info</code> with an additional byte, that looks astonishingly like a 'c' after the version number, and in the <code>di-camera-app</code>. The other differing files are due to a bug I didn't bother to fix, as the script does not handle spaces in the file paths well at all.</p>
<h3 id="dissecting-the-disassembly">Dissecting the Disassembly</h3>
<p>Ok, we've essentially found out, that the main difference seems to be in the <code>di-camera-app</code>, which is more or less expected, since this binary handles all of the ARM-side software of the camera. So, I've run <code>arm-none-eabi-objdump</code> on them and took a <code>diff</code> (for the lulz I repeated that with forced thumb-mode, which did not go well, so I can be sure, that this code seems to be regular ARM code).</p>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="gu">2c2</span></code></span>
<span class="code-line"><span class="gd">< di-camera-app-hacked: file format elf32-littlearm</span></span>
<span class="code-line"><span class="gs">---</span></span>
<span class="code-line"><span class="gi">> di-camera-app-original: file format elf32-littlearm</span></span>
<span class="code-line">381052c381052</span>
<span class="code-line"><span class="gd">< 177670: e3e03102 mvn r3, #-2147483648 ; 0x80000000</span></span>
<span class="code-line"><span class="gs">---</span></span>
<span class="code-line"><span class="gi">> 177670: e3a03000 mov r3, #0</span></span>
<span class="code-line">443109c443109</span>
<span class="code-line"><span class="gd">< 1b3840: e3e03102 mvn r3, #-2147483648 ; 0x80000000</span></span>
<span class="code-line"><span class="gs">---</span></span>
<span class="code-line"><span class="gi">> 1b3840: e3003706 movw r3, #1798 ; 0x706</span></span>
<span class="code-line"></span></pre></div>
<p>Aha! Two differences, about 4 changed bytes, that makes all the difference. But why? Well, let's look at the disassembly of the unofficial firmware, especially around where I found the differences:</p>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="err">00177660</span><span class="w"> </span><span class="err"><</span><span class="nf">_Z28UI_Get_Storage_File_Max_Sizev@@Base</span><span class="err">></span><span class="p">:</span></code></span>
<span class="code-line"><span class="w"> </span><span class="err">177660:</span><span class="w"> </span><span class="nf">e52db004</span><span class="w"> </span><span class="no">push</span><span class="w"> </span><span class="p">{</span><span class="no">fp</span><span class="p">}</span><span class="w"> </span><span class="c1">; (str fp, [sp, #-4]!)</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177664:</span><span class="w"> </span><span class="nf">e28db000</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177668:</span><span class="w"> </span><span class="nf">e24dd00c</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#12</span></span>
<span class="code-line"><span class="w"> </span><span class="err">17766</span><span class="nl">c:</span><span class="w"> </span><span class="nf">e3e02000</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="err">></span><span class="w"> </span><span class="err">177670:</span><span class="w"> </span><span class="nf">e3e03102</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#-2147483648</span><span class="w"> </span><span class="c1">; 0x80000000</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177674:</span><span class="w"> </span><span class="nf">e14b20fc</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-12</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177678:</span><span class="w"> </span><span class="nf">e14b20dc</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-12</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">17767</span><span class="nl">c:</span><span class="w"> </span><span class="nf">e1a00002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177680:</span><span class="w"> </span><span class="nf">e1a01003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177684:</span><span class="w"> </span><span class="nf">e28bd000</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">177688:</span><span class="w"> </span><span class="nf">e8bd0800</span><span class="w"> </span><span class="no">ldmfd</span><span class="w"> </span><span class="no">sp</span><span class="p">!,</span><span class="w"> </span><span class="p">{</span><span class="no">fp</span><span class="p">}</span></span>
<span class="code-line"><span class="w"> </span><span class="err">17768</span><span class="nl">c:</span><span class="w"> </span><span class="nf">e12fff1e</span><span class="w"> </span><span class="no">bx</span><span class="w"> </span><span class="no">lr</span></span>
<span class="code-line"></span></pre></div>
<p>I've marked the changed line. At first there was an <code>mov r3, #0</code> which would have set the register <code>r3</code> to the value of 0, now it's a move negative <code>mvn r3, #0x80000000</code>. This instruction bitwise negates the source operand and sets the destination with the value, i.e. making r3 the largest possible signed 32 bit value <code>0x7fffffff</code>. </p>
<p>From what I can get, this seems to be intializing one of the two return parameters to the maximal value, so make the calling code think, that the maximal file size of the file system is essentially unlimited. However, the code looks somewhat weird. <code>strd</code> and <code>ldrd</code> are store and load-operations on double-words, so I assume that this code means <code>r2</code> and <code>r3</code> are stored onto the newly created stack and read back from it. It looks to me, that the Samsung engineers forgot to enable compiler optimizations, as no normal not-braindead-compiler wouldn't keep these values just in the registers.</p>
<p>A bit concerning is the <code>bx</code> instruction at the end, which is a branch (to the Link Register <code>lr</code>, which is the ARM version of a return), but with changing the instruction set. So whatever it returns to should be Thumb code, if I understand that correctly. Maybe I'll have to do more research on that.</p>
<p>Well, let's get to the second change. I'll abbreviate it here, but I'll put the whole file in the appendix.</p>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="err">001</span><span class="nf">b3584</span><span class="w"> </span><span class="err"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="err">></span><span class="p">:</span></code></span>
<span class="code-line"><span class="na">...</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3610:</span><span class="w"> </span><span class="nf">ebff0fff</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">177614</span> <span class="p"><</span><span class="no">_Z25UI_Get_Storage_Free_Spacev@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3614:</span><span class="w"> </span><span class="nf">e1a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3618:</span><span class="w"> </span><span class="nf">e1a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b361c:</span><span class="w"> </span><span class="nf">e14b26fc</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="err">></span><span class="w"> </span><span class="err">1</span><span class="nl">b3620:</span><span class="w"> </span><span class="nf">ebff100e</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">177660</span> <span class="p"><</span><span class="no">_Z28UI_Get_Storage_File_Max_Sizev@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3624:</span><span class="w"> </span><span class="nf">e1a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3628:</span><span class="w"> </span><span class="nf">e1a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b362c:</span><span class="w"> </span><span class="nf">e14b27f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3630:</span><span class="w"> </span><span class="nf">e3a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3634:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3638:</span><span class="w"> </span><span class="nf">e14b22f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-36</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffdc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b363c:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3640:</span><span class="w"> </span><span class="nf">e50b3028</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-40</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3644:</span><span class="w"> </span><span class="nf">e3a00053</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#83</span><span class="w"> </span><span class="c1">; 0x53</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3648:</span><span class="w"> </span><span class="nf">ebfed3f2</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b364c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3650:</span><span class="w"> </span><span class="nf">e50b3078</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3654:</span><span class="w"> </span><span class="nf">e3a00050</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#80</span><span class="w"> </span><span class="c1">; 0x50</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3658:</span><span class="w"> </span><span class="nf">ebfed3ee</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b365c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3660:</span><span class="w"> </span><span class="nf">e50b307c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3664:</span><span class="w"> </span><span class="nf">e51b007c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3668:</span><span class="w"> </span><span class="nf">e3a01000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b366c:</span><span class="w"> </span><span class="nf">eb001748</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b9394</span> <span class="p"><</span><span class="no">_Z22UI_Set_Attr_Movie_Size18eUI_CAP_MOVIE_SIZE@@Base</span><span class="p">+</span><span class="mi">0x1100</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3670:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3674:</span><span class="w"> </span><span class="nf">e50b3060</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-96</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3678:</span><span class="w"> </span><span class="nf">e51b007c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b367c:</span><span class="w"> </span><span class="nf">ebffff3c</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b3374</span> <span class="p"><</span><span class="no">_Z21UI_Get_Video_Bit_Rate18eUI_CAP_MOVIE_SIZE@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3680:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3684:</span><span class="w"> </span><span class="nf">e50b3058</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-88</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3688:</span><span class="w"> </span><span class="nf">e24b2084</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#132</span><span class="w"> </span><span class="c1">; 0x84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b368c:</span><span class="w"> </span><span class="nf">e24b3088</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#136</span><span class="w"> </span><span class="c1">; 0x88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3690:</span><span class="w"> </span><span class="nf">e1a00002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3694:</span><span class="w"> </span><span class="nf">e1a01003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3698:</span><span class="w"> </span><span class="nf">ebffff98</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b3500</span> <span class="p"><</span><span class="no">_Z21UI_Get_Audio_Bit_RatePiS_@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b369c:</span><span class="w"> </span><span class="nf">e51b2068</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-104</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff98</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36a0:</span><span class="w"> </span><span class="nf">e51b3070</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-112</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff90</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36a4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="na">...</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37e8:</span><span class="w"> </span><span class="nf">ebfadace</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6a328</span> <span class="p"><</span><span class="no">mm_util_movie_record_time@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37ec:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f0:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f4:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f8:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37fc:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000006</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b381c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x298</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3800:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3804:</span><span class="w"> </span><span class="nf">e2832003</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3808:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b380c:</span><span class="w"> </span><span class="nf">b1a03002</span><span class="w"> </span><span class="no">movlt</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3810:</span><span class="w"> </span><span class="nf">e1a03143</span><span class="w"> </span><span class="no">asr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3814:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3818:</span><span class="w"> </span><span class="nf">ea000007</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b383c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2b8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b381c:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3820:</span><span class="w"> </span><span class="nf">e3530001</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3824:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000004</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b383c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2b8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3828:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b382c:</span><span class="w"> </span><span class="nf">e1a02fa3</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#31</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3830:</span><span class="w"> </span><span class="nf">e0823003</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3834:</span><span class="w"> </span><span class="nf">e1a030c3</span><span class="w"> </span><span class="no">asr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3838:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b383c:</span><span class="w"> </span><span class="nf">e51b2018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="err">></span><span class="w"> </span><span class="err">1</span><span class="nl">b3840:</span><span class="w"> </span><span class="nf">e3e03102</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#-2147483648</span><span class="w"> </span><span class="c1">; 0x80000000</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3844:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3848:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b3858</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2d4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b384c:</span><span class="w"> </span><span class="nf">e3003707</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1799</span><span class="w"> </span><span class="c1">; 0x707</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3850:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3854:</span><span class="w"> </span><span class="nf">ea000001</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3860</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2dc</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3858:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b385c:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3860:</span><span class="w"> </span><span class="nf">e51b307c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3864:</span><span class="w"> </span><span class="nf">e3530007</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#7</span></span>
<span class="code-line"><span class="na">...</span></span>
<span class="code-line"></span></pre></div>
<p>This one is a bit bigger. First, we find the only call-site of the StorageMax function we saw our first change in. The return values are stored in <code>r2</code> and <code>r3</code> and placed on the stack. I'd assume, that there is a <code>cmp</code> (compare) statement with these values later on, which would stop the recording, when the file size limit is hit.</p>
<p>Then later on, near the middle of the function, but at the end of the excerpt, we find our second change. Normally we'd write the value of 1798 into register <code>r3</code>, but we want to write signed integer max. You know 1798 looks an awful lot like the maximal amount of seconds a video can be. And sure enough, when we divide 60 from it, we get 29.9 minutes, which is the maximal time for 1080p30 videos. In the 1080p60 video mode, the time is reduced to 21 minutes and a few seconds, because the file size exceeds the 4G limit by the FAT-filesystem. However the SD cards are formatted to exfat in the NX300M which allows for nearly unlimited file sized.</p>
<p>One thing to note here is, that there is a function UI::GetVideoBitRate in the function. One can savely assume, that this function may be used for communication with the drime4 ASIC to set the correct bitrate and quality setting for the movie recording. That may of course also be a red hering.</p>
<h2 id="conclusion_1">Conclusion</h2>
<p>So, from what I can understand, the breaking points on the NX300 were the maximal file size of the filesystem. I did not see where the function would get the information about the file system on the SD card, so this may or may not be breakable by using an ext2-formatted card and a cross compiled ext2-kernel module [<a href="https://lemmster.de/cross-compile-kernel-module-samsung-nx300-ubnut-14.04.html">4</a>]. </p>
<p>The second change was to eliminate the hard limit to 30 minutes of movie recording. I haven't investigated that close enough, but maybe there is a check for the system parameter, where we could disable the recording limit.</p>
<h2 id="references">References</h2>
<p>[1] <a href="https://www.dpreview.com/forums/post/56754944">https://www.dpreview.com/forums/post/56754944</a><br/>
[2] <a href="https://mega.nz/file/RAJCiIIZ#LappfCn1QSppxx9eu49DvTqS9GhvSYA_Edqr6S6o2ZA">https://mega.nz/file/RAJCiIIZ#LappfCn1QSppxx9eu49DvTqS9GhvSYA_Edqr6S6o2ZA</a><br/>
[3] <a href="https://sites.google.com/site/nxcryptophotography/diy-firmware">https://sites.google.com/site/nxcryptophotography/diy-firmware</a><br/>
[4] <a href="https://lemmster.de/cross-compile-kernel-module-samsung-nx300-ubnut-14.04.html">https://lemmster.de/cross-compile-kernel-module-samsung-nx300-ubnut-14.04.html</a><br/></p>
<h2 id="appendix">Appendix</h2>
<h3 id="extractorc">extractor.c</h3>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="c1">// CC-BY-NC-SA Stefan Naumann</span></code></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/types.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/stat.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/mman.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/wait.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><fcntl.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><errno.h></span></span>
<span class="code-line"></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><unistd.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><assert.h></span></span>
<span class="code-line"></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdlib.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdio.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdint.h></span></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdbool.h></span></span>
<span class="code-line"></span>
<span class="code-line"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><string.h></span></span>
<span class="code-line"></span>
<span class="code-line"><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">size</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">crc</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">start</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">unknown</span><span class="p">;</span><span class="w"> </span><span class="c1">// maybe address for flash?</span></span>
<span class="code-line"><span class="p">};</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="cp">#define PRINT_META(name,x) printf("%s { \n\tsize : 0x%08lx\n\tcrc : 0x%08lx\n\tstart: 0x%08lx\n\tunknown: %lx\n};\n", name, x.size, x.crc, x.start, x.unknown);</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="k">struct</span><span class="w"> </span><span class="nc">header</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">stuff</span><span class="p">[</span><span class="mh">0x40</span><span class="p">];</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">vimage</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">d4ipl</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">d4pnlbl</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">uimage</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">platform</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="w"> </span><span class="n">pcache</span><span class="p">;</span></span>
<span class="code-line"><span class="p">};</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">name</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"vImage"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"D4_IPL"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"D4_PNLBL"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"uImage"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"platform"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"pcache"</span></span>
<span class="code-line"><span class="p">};</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">fname</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"vImage"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"D4_IPL.bin"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"D4_PNLBL.bin"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"uImage"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"platform.img"</span><span class="p">,</span></span>
<span class="code-line"><span class="w"> </span><span class="s">"pcache.list"</span></span>
<span class="code-line"><span class="p">};</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="k">static_assert</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">4</span><span class="o">*</span><span class="mi">4</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="k">static_assert</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">header</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mh">0xa0</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="kt">bool</span><span class="w"> </span><span class="nf">checkCRC</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">filename</span><span class="p">,</span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">crc</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">// why bother?</span></span>
<span class="code-line"><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="kt">int</span><span class="w"> </span><span class="nf">ddout</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="o">*</span><span class="w"> </span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">inname</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">assert</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">strlen</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">17</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">assert</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">strlen</span><span class="p">(</span><span class="n">inname</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">197</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">pid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fork</span><span class="p">();</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">skip</span><span class="p">[</span><span class="mi">20</span><span class="p">]</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">},</span><span class="w"> </span><span class="n">count</span><span class="p">[</span><span class="mi">20</span><span class="p">]</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">},</span><span class="w"> </span><span class="n">iff</span><span class="p">[</span><span class="mi">200</span><span class="p">]</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">},</span><span class="w"> </span><span class="n">off</span><span class="p">[</span><span class="mi">20</span><span class="p">]</span><span class="o">=</span><span class="p">{</span><span class="mi">0</span><span class="p">},</span><span class="w"> </span><span class="n">bs</span><span class="p">[</span><span class="mi">20</span><span class="p">]</span><span class="o">=</span><span class="s">"bs=1"</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">pid</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">EINVAL</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">pid</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">bsi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">m</span><span class="o">-></span><span class="n">size</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">bsi</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">bsi</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">32</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">bsi</span><span class="o">++</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"><span class="w"> </span><span class="n">bsi</span><span class="o">--</span><span class="p">;</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">bsi</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="mi">32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">bsi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">skip</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="s">"skip=%ld"</span><span class="p">,</span><span class="w"> </span><span class="n">m</span><span class="o">-></span><span class="n">start</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">count</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="s">"count=%ld"</span><span class="p">,</span><span class="w"> </span><span class="n">m</span><span class="o">-></span><span class="n">size</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">iff</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="s">"if=%s"</span><span class="p">,</span><span class="w"> </span><span class="n">inname</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">off</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="s">"of=%s"</span><span class="p">,</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">bs</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="s">"bs=%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="s">"%s %s %s %s %s %s status=progress</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="s">"dd"</span><span class="p">,</span><span class="w"> </span><span class="n">skip</span><span class="p">,</span><span class="w"> </span><span class="n">count</span><span class="p">,</span><span class="w"> </span><span class="n">iff</span><span class="p">,</span><span class="w"> </span><span class="n">off</span><span class="p">,</span><span class="w"> </span><span class="n">bs</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">execlp</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="s">"dd"</span><span class="p">,</span><span class="w"> </span><span class="s">"dd"</span><span class="p">,</span><span class="w"> </span><span class="n">skip</span><span class="p">,</span><span class="w"> </span><span class="n">count</span><span class="p">,</span><span class="w"> </span><span class="n">iff</span><span class="p">,</span><span class="w"> </span><span class="n">off</span><span class="p">,</span><span class="w"> </span><span class="n">bs</span><span class="p">,</span><span class="w"> </span><span class="s">"status=progress"</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">exit</span><span class="p">(</span><span class="n">EINVAL</span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="n">waitpid</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">pid</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">rc</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">WEXITSTATUS</span><span class="p">(</span><span class="n">rc</span><span class="p">);</span></span>
<span class="code-line"><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="o">**</span><span class="w"> </span><span class="n">argv</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">argc</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="s">"usage: %s {filename}</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">EINVAL</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">open</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">O_RDONLY</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"open: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">strerror</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">errno</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">header</span><span class="o">*</span><span class="w"> </span><span class="n">hdr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">header</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">mmap</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="mh">0xa0</span><span class="p">,</span><span class="w"> </span><span class="n">PROT_READ</span><span class="p">,</span><span class="w"> </span><span class="n">MAP_PRIVATE</span><span class="p">,</span><span class="w"> </span><span class="n">fd</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">close</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">fd</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="o">*</span><span class="p">)</span><span class="n">hdr</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="o">*</span><span class="p">)</span><span class="n">MAP_FAILED</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"mmap: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">strerror</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">errno</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">errno</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">meta</span><span class="o">*</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&</span><span class="n">hdr</span><span class="o">-></span><span class="n">vimage</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o"><</span><span class="mi">6</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span></span>
<span class="code-line"><span class="w"> </span><span class="n">PRINT_META</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">name</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="w"> </span><span class="n">m</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="n">ddout</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="o">&</span><span class="n">m</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="w"> </span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">fname</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"><span class="w"> </span><span class="p">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="n">munmap</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">hdr</span><span class="p">,</span><span class="w"> </span><span class="mh">0xa0</span><span class="w"> </span><span class="p">);</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span></span>
<span class="code-line"><span class="p">}</span></span>
<span class="code-line"></span></pre></div>
<h3 id="diffsh">diff.sh</h3>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="ch">#!/bin/bash</span></code></span>
<span class="code-line"><span class="c1"># CC-BY-SA-NC by Stefan Naumann</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="nv">NORMAL</span><span class="o">=</span><span class="m">32</span></span>
<span class="code-line"><span class="nv">WARN</span><span class="o">=</span><span class="m">31</span></span>
<span class="code-line"><span class="nv">CHECK</span><span class="o">=</span><span class="m">34</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="c1">## "simple" logging function using asci escape colors and output files</span></span>
<span class="code-line"><span class="k">function</span><span class="w"> </span>log<span class="w"> </span><span class="o">()</span><span class="w"> </span><span class="o">{</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">level</span><span class="o">=</span><span class="si">${</span><span class="nv">2</span><span class="k">:-</span><span class="si">${</span><span class="nv">NORMAL</span><span class="si">}}</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">output</span><span class="o">=</span><span class="si">${</span><span class="nv">3</span><span class="k">:-</span><span class="s2">"/dev/stdout"</span><span class="si">}</span></span>
<span class="code-line"><span class="w"> </span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">"\033[</span><span class="si">${</span><span class="nv">level</span><span class="si">}</span><span class="s2">;1m> </span><span class="nv">$1</span><span class="s2">\033[0m"</span><span class="w"> </span>>><span class="w"> </span><span class="nv">$output</span></span>
<span class="code-line"><span class="o">}</span></span>
<span class="code-line"></span>
<span class="code-line">log<span class="w"> </span><span class="s2">"Usage: diff.sh <orig> <hacked> <outfile>"</span></span>
<span class="code-line">log<span class="w"> </span><span class="s2">"Tool to find diffrences in two folders, comparing all files"</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="nv">h</span><span class="o">=</span><span class="si">${</span><span class="nv">2</span><span class="k">:-</span><span class="s2">"hacked"</span><span class="si">}</span></span>
<span class="code-line"><span class="nv">o</span><span class="o">=</span><span class="si">${</span><span class="nv">1</span><span class="k">:-</span><span class="s2">"original"</span><span class="si">}</span></span>
<span class="code-line"><span class="nv">outfile</span><span class="o">={</span><span class="m">3</span>:-<span class="s2">"diffout"</span><span class="o">}</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="c1">## Use find and md5sum to get all the files, scan their contents </span></span>
<span class="code-line">log<span class="w"> </span><span class="s2">"Scanning directory </span><span class="nv">$h</span><span class="s2">"</span></span>
<span class="code-line"><span class="nv">hmd5</span><span class="o">=</span><span class="k">$(</span>find<span class="w"> </span><span class="nv">$h</span><span class="w"> </span>-type<span class="w"> </span>f<span class="w"> </span>-exec<span class="w"> </span>md5sum<span class="w"> </span><span class="o">{}</span><span class="w"> </span>+<span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-k<span class="w"> </span><span class="m">2</span><span class="k">)</span></span>
<span class="code-line">log<span class="w"> </span><span class="s2">"Scanning directory </span><span class="nv">$o</span><span class="s2">"</span></span>
<span class="code-line"><span class="nv">omd5</span><span class="o">=</span><span class="k">$(</span>find<span class="w"> </span><span class="nv">$o</span><span class="w"> </span>-type<span class="w"> </span>f<span class="w"> </span>-exec<span class="w"> </span>md5sum<span class="w"> </span><span class="o">{}</span><span class="w"> </span>+<span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-k<span class="w"> </span><span class="m">2</span><span class="k">)</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="c1">## vars for progress output</span></span>
<span class="code-line"><span class="nv">totallines</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$hmd5</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>wc<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $1}'</span><span class="k">)</span></span>
<span class="code-line"><span class="nv">i</span><span class="o">=</span><span class="m">0</span></span>
<span class="code-line"><span class="nv">last</span><span class="o">=</span><span class="m">0</span></span>
<span class="code-line"></span>
<span class="code-line">log<span class="w"> </span><span class="s2">"Diffing (</span><span class="nv">$totallines</span><span class="s2"> files)"</span></span>
<span class="code-line"><span class="c1">## for all files</span></span>
<span class="code-line"><span class="k">while</span><span class="w"> </span><span class="nv">IFS</span><span class="o">=</span><span class="w"> </span><span class="nb">read</span><span class="w"> </span>-r<span class="w"> </span>line<span class="p">;</span><span class="w"> </span><span class="k">do</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## remove prefix from the hacked filename</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">hfile</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $2}'</span><span class="k">)</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">hfile</span><span class="o">=</span><span class="si">${</span><span class="nv">hfile</span><span class="p">#</span><span class="s2">"</span><span class="nv">$h</span><span class="s2">"</span><span class="si">}</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## find the corresponding file in the original filesystem</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">oline</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$omd5</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">hfile</span><span class="si">}</span><span class="s2">"</span><span class="k">)</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="nv">nlines</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$oline</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>wc<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $1}'</span><span class="k">)</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">stat</span><span class="o">=</span><span class="m">0</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## grep may have found 0, 1 (perfect!) or more equivalents (as I can't search for exact matches)</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$nlines</span><span class="w"> </span>-eq<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span></span>
<span class="code-line"><span class="w"> </span>log<span class="w"> </span><span class="s2">"Could not find file </span><span class="nv">$hfile</span><span class="s2">"</span><span class="w"> </span>WARN</span>
<span class="code-line"><span class="w"> </span><span class="k">continue</span></span>
<span class="code-line"><span class="w"> </span><span class="k">elif</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$nlines</span><span class="w"> </span>-gt<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span><span class="w"> </span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## if it found >1 equivalent, we have to search ourselves</span></span>
<span class="code-line"><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="nv">IFS</span><span class="o">=</span><span class="w"> </span><span class="nb">read</span><span class="w"> </span>-r<span class="w"> </span>l2<span class="p">;</span><span class="w"> </span><span class="k">do</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">f</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$l2</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $2}'</span><span class="k">)</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">f</span><span class="o">=</span><span class="si">${</span><span class="nv">f</span><span class="p">#</span><span class="s2">"</span><span class="nv">$o</span><span class="s2">"</span><span class="si">}</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$f</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"</span><span class="nv">$hfile</span><span class="s2">"</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">oline</span><span class="o">=</span><span class="s2">"</span><span class="nv">$l2</span><span class="s2">"</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">stat</span><span class="o">=</span><span class="m">1</span></span>
<span class="code-line"><span class="w"> </span><span class="k">break</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">fi</span></span>
<span class="code-line"><span class="w"> </span><span class="k">done</span><span class="w"> </span><span class="o"><<<</span><span class="w"> </span><span class="s2">"</span><span class="nv">$oline</span><span class="s2">"</span></span>
<span class="code-line"><span class="w"> </span><span class="k">else</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## exactly one -> perfect</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">stat</span><span class="o">=</span><span class="m">1</span></span>
<span class="code-line"><span class="w"> </span><span class="k">fi</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="c1">## oline="" if grep did not find anything</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## stat=0 if grep did not find anything or it found >1 file and we did not</span></span>
<span class="code-line"><span class="w"> </span><span class="c1">## find anything ourselves</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$oline</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$stat</span><span class="w"> </span>-eq<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span><span class="w"> </span></span>
<span class="code-line"><span class="w"> </span>log<span class="w"> </span><span class="s2">"Did not find file </span><span class="nv">$hfile</span><span class="s2">"</span><span class="w"> </span>WARN</span>
<span class="code-line"><span class="w"> </span><span class="k">else</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">hsum</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $1}'</span><span class="k">)</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">osum</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span><span class="w"> </span><span class="s2">"</span><span class="nv">$oline</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $1}'</span><span class="k">)</span></span>
<span class="code-line"><span class="w"> </span><span class="c1"># check the checksum of the original and hacked file</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="nv">$osum</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"</span><span class="nv">$hsum</span><span class="s2">"</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span></span>
<span class="code-line"><span class="w"> </span>:</span>
<span class="code-line"><span class="w"> </span><span class="k">else</span></span>
<span class="code-line"><span class="w"> </span>log<span class="w"> </span><span class="s2">"Checksums did not check out on '</span><span class="nv">$hfile</span><span class="s2">'"</span><span class="w"> </span><span class="nv">$CHECK</span><span class="w"> </span><span class="nv">$outfile</span></span>
<span class="code-line"><span class="w"> </span><span class="k">fi</span></span>
<span class="code-line"><span class="w"> </span><span class="k">fi</span></span>
<span class="code-line"></span>
<span class="code-line"><span class="w"> </span><span class="c1">## progress output</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">i</span><span class="o">=</span><span class="k">$((</span><span class="nv">i</span><span class="o">+</span><span class="m">1</span><span class="k">))</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">next</span><span class="o">=</span><span class="k">$((</span><span class="nv">last</span><span class="o">+</span><span class="m">250</span><span class="k">))</span></span>
<span class="code-line"><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$i</span><span class="w"> </span>-gt<span class="w"> </span><span class="nv">$next</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span></span>
<span class="code-line"><span class="w"> </span>log<span class="w"> </span><span class="s2">"progress (</span><span class="nv">$i</span><span class="s2">/</span><span class="nv">$totallines</span><span class="s2"> files)"</span></span>
<span class="code-line"><span class="w"> </span><span class="nv">last</span><span class="o">=</span><span class="nv">$next</span><span class="p">;</span></span>
<span class="code-line"><span class="w"> </span><span class="k">fi</span></span>
<span class="code-line"><span class="k">done</span><span class="w"> </span><span class="o"><<<</span><span class="w"> </span><span class="s2">"</span><span class="nv">$hmd5</span><span class="s2">"</span></span>
<span class="code-line"></span></pre></div>
<h3 id="uigetmovieremaiantime">UI::GetMovieRemaianTime</h3>
<div class="highlight"><pre><span class="code-line"><span></span><code><span class="err">001</span><span class="nf">b3584</span><span class="w"> </span><span class="err"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="err">></span><span class="p">:</span></code></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3584:</span><span class="w"> </span><span class="nf">e92d48f0</span><span class="w"> </span><span class="no">push</span><span class="w"> </span><span class="p">{</span><span class="no">r4</span><span class="p">,</span><span class="w"> </span><span class="no">r5</span><span class="p">,</span><span class="w"> </span><span class="no">r6</span><span class="p">,</span><span class="w"> </span><span class="no">r7</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="no">lr</span><span class="p">}</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3588:</span><span class="w"> </span><span class="nf">e28db014</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#20</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b358c:</span><span class="w"> </span><span class="nf">e24dd088</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#136</span><span class="w"> </span><span class="c1">; 0x88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3590:</span><span class="w"> </span><span class="nf">e3a03b01</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1024</span><span class="w"> </span><span class="c1">; 0x400</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3594:</span><span class="w"> </span><span class="nf">e50b3030</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-48</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3598:</span><span class="w"> </span><span class="nf">e3003707</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1799</span><span class="w"> </span><span class="c1">; 0x707</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b359c:</span><span class="w"> </span><span class="nf">e50b3034</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-52</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffcc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35a0:</span><span class="w"> </span><span class="nf">e3a0301e</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#30</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35a4:</span><span class="w"> </span><span class="nf">e50b3038</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-56</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffc8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35a8:</span><span class="w"> </span><span class="nf">e3a03096</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#150</span><span class="w"> </span><span class="c1">; 0x96</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35ac:</span><span class="w"> </span><span class="nf">e50b303c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-60</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffc4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35b0:</span><span class="w"> </span><span class="nf">e3a03f4b</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#300</span><span class="w"> </span><span class="c1">; 0x12c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35b4:</span><span class="w"> </span><span class="nf">e50b3040</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-64</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffc0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35b8:</span><span class="w"> </span><span class="nf">e3a03f96</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#600</span><span class="w"> </span><span class="c1">; 0x258</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35bc:</span><span class="w"> </span><span class="nf">e50b3044</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-68</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffbc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35c0:</span><span class="w"> </span><span class="nf">e3a0300f</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#15</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35c4:</span><span class="w"> </span><span class="nf">e50b3048</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-72</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffb8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35c8:</span><span class="w"> </span><span class="nf">e3a03007</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#7</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35cc:</span><span class="w"> </span><span class="nf">e50b304c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-76</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffb4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35d0:</span><span class="w"> </span><span class="nf">e3e03102</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#-2147483648</span><span class="w"> </span><span class="c1">; 0x80000000</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35d4:</span><span class="w"> </span><span class="nf">e50b3050</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-80</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffb0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35d8:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35dc:</span><span class="w"> </span><span class="nf">e50b3080</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-128</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff80</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35e0:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35e4:</span><span class="w"> </span><span class="nf">e50b3054</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-84</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffac</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35e8:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35ec:</span><span class="w"> </span><span class="nf">e50b3058</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-88</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35f0:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35f4:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35f8:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b35fc:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3600:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3604:</span><span class="w"> </span><span class="nf">e50b305c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-92</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3608:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b360c:</span><span class="w"> </span><span class="nf">e50b3060</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-96</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3610:</span><span class="w"> </span><span class="nf">ebff0fff</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">177614</span> <span class="p"><</span><span class="no">_Z25UI_Get_Storage_Free_Spacev@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3614:</span><span class="w"> </span><span class="nf">e1a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3618:</span><span class="w"> </span><span class="nf">e1a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b361c:</span><span class="w"> </span><span class="nf">e14b26fc</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="err">></span><span class="w"> </span><span class="err">1</span><span class="nl">b3620:</span><span class="w"> </span><span class="nf">ebff100e</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">177660</span> <span class="p"><</span><span class="no">_Z28UI_Get_Storage_File_Max_Sizev@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3624:</span><span class="w"> </span><span class="nf">e1a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3628:</span><span class="w"> </span><span class="nf">e1a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b362c:</span><span class="w"> </span><span class="nf">e14b27f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3630:</span><span class="w"> </span><span class="nf">e3a02000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3634:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3638:</span><span class="w"> </span><span class="nf">e14b22f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-36</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffdc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b363c:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3640:</span><span class="w"> </span><span class="nf">e50b3028</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-40</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3644:</span><span class="w"> </span><span class="nf">e3a00053</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#83</span><span class="w"> </span><span class="c1">; 0x53</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3648:</span><span class="w"> </span><span class="nf">ebfed3f2</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b364c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3650:</span><span class="w"> </span><span class="nf">e50b3078</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3654:</span><span class="w"> </span><span class="nf">e3a00050</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#80</span><span class="w"> </span><span class="c1">; 0x50</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3658:</span><span class="w"> </span><span class="nf">ebfed3ee</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b365c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3660:</span><span class="w"> </span><span class="nf">e50b307c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3664:</span><span class="w"> </span><span class="nf">e51b007c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3668:</span><span class="w"> </span><span class="nf">e3a01000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b366c:</span><span class="w"> </span><span class="nf">eb001748</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b9394</span> <span class="p"><</span><span class="no">_Z22UI_Set_Attr_Movie_Size18eUI_CAP_MOVIE_SIZE@@Base</span><span class="p">+</span><span class="mi">0x1100</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3670:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3674:</span><span class="w"> </span><span class="nf">e50b3060</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-96</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3678:</span><span class="w"> </span><span class="nf">e51b007c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b367c:</span><span class="w"> </span><span class="nf">ebffff3c</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b3374</span> <span class="p"><</span><span class="no">_Z21UI_Get_Video_Bit_Rate18eUI_CAP_MOVIE_SIZE@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3680:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3684:</span><span class="w"> </span><span class="nf">e50b3058</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-88</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3688:</span><span class="w"> </span><span class="nf">e24b2084</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#132</span><span class="w"> </span><span class="c1">; 0x84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b368c:</span><span class="w"> </span><span class="nf">e24b3088</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#136</span><span class="w"> </span><span class="c1">; 0x88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3690:</span><span class="w"> </span><span class="nf">e1a00002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3694:</span><span class="w"> </span><span class="nf">e1a01003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3698:</span><span class="w"> </span><span class="nf">ebffff98</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1b3500</span> <span class="p"><</span><span class="no">_Z21UI_Get_Audio_Bit_RatePiS_@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b369c:</span><span class="w"> </span><span class="nf">e51b2068</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-104</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff98</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36a0:</span><span class="w"> </span><span class="nf">e51b3070</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-112</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff90</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36a4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36a8:</span><span class="w"> </span><span class="err">8</span><span class="nf">a00000b</span><span class="w"> </span><span class="no">bhi</span><span class="w"> </span><span class="mh">1b36dc</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x158</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36ac:</span><span class="w"> </span><span class="nf">e51b2068</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-104</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff98</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36b0:</span><span class="w"> </span><span class="nf">e51b3070</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-112</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff90</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36b4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36b8:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000011</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3704</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x180</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36bc:</span><span class="w"> </span><span class="nf">e51b206c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36c0:</span><span class="w"> </span><span class="nf">e51b3074</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36c4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36c8:</span><span class="w"> </span><span class="err">8</span><span class="nf">a000003</span><span class="w"> </span><span class="no">bhi</span><span class="w"> </span><span class="mh">1b36dc</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x158</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36cc:</span><span class="w"> </span><span class="nf">e51b206c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36d0:</span><span class="w"> </span><span class="nf">e51b3074</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36d4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36d8:</span><span class="w"> </span><span class="nf">ea000009</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3704</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x180</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36dc:</span><span class="w"> </span><span class="nf">e14b27d4</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36e0:</span><span class="w"> </span><span class="nf">e14b22f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-36</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffdc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36e4:</span><span class="w"> </span><span class="nf">e14b27d4</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-116</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff8c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36e8:</span><span class="w"> </span><span class="nf">e1a01b03</span><span class="w"> </span><span class="no">lsl</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#22</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36ec:</span><span class="w"> </span><span class="nf">e1a06522</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r6</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#10</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36f0:</span><span class="w"> </span><span class="nf">e1816006</span><span class="w"> </span><span class="no">orr</span><span class="w"> </span><span class="no">r6</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r6</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36f4:</span><span class="w"> </span><span class="nf">e1a07523</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r7</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#10</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36f8:</span><span class="w"> </span><span class="nf">e1a03006</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r6</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b36fc:</span><span class="w"> </span><span class="nf">e50b3028</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-40</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3700:</span><span class="w"> </span><span class="nf">ea000008</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3728</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x1a4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3704:</span><span class="w"> </span><span class="nf">e14b26dc</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3708:</span><span class="w"> </span><span class="nf">e14b22f4</span><span class="w"> </span><span class="no">strd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-36</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffdc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b370c:</span><span class="w"> </span><span class="nf">e14b26dc</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3710:</span><span class="w"> </span><span class="nf">e1a01b03</span><span class="w"> </span><span class="no">lsl</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#22</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3714:</span><span class="w"> </span><span class="nf">e1a04522</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r4</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#10</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3718:</span><span class="w"> </span><span class="nf">e1814004</span><span class="w"> </span><span class="no">orr</span><span class="w"> </span><span class="no">r4</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b371c:</span><span class="w"> </span><span class="nf">e1a05523</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r5</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#10</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3720:</span><span class="w"> </span><span class="nf">e1a03004</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3724:</span><span class="w"> </span><span class="nf">e50b3028</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-40</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3728:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b372c:</span><span class="w"> </span><span class="nf">e50b302c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-44</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3730:</span><span class="w"> </span><span class="nf">e3a00030</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#48</span><span class="w"> </span><span class="c1">; 0x30</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3734:</span><span class="w"> </span><span class="nf">eb012277</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">1fc118</span> <span class="p"><</span><span class="no">_Z12UI_Get_State14eUI_STATE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3738:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b373c:</span><span class="w"> </span><span class="nf">e3530001</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3740:</span><span class="w"> </span><span class="err">13</span><span class="nf">a03000</span><span class="w"> </span><span class="no">movne</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3744:</span><span class="w"> </span><span class="err">03</span><span class="nf">a03001</span><span class="w"> </span><span class="no">moveq</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3748:</span><span class="w"> </span><span class="nf">e6ef3073</span><span class="w"> </span><span class="no">uxtb</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b374c:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3750:</span><span class="w"> </span><span class="err">0</span><span class="nf">a00000d</span><span class="w"> </span><span class="no">beq</span><span class="w"> </span><span class="mh">1b378c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x208</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3754:</span><span class="w"> </span><span class="nf">e3a000c3</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#195</span><span class="w"> </span><span class="c1">; 0xc3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3758:</span><span class="w"> </span><span class="nf">ebfed3ae</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b375c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3760:</span><span class="w"> </span><span class="nf">e3530001</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3764:</span><span class="w"> </span><span class="err">13</span><span class="nf">a03000</span><span class="w"> </span><span class="no">movne</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3768:</span><span class="w"> </span><span class="err">03</span><span class="nf">a03001</span><span class="w"> </span><span class="no">moveq</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b376c:</span><span class="w"> </span><span class="nf">e6ef3073</span><span class="w"> </span><span class="no">uxtb</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3770:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3774:</span><span class="w"> </span><span class="err">0</span><span class="nf">a000002</span><span class="w"> </span><span class="no">beq</span><span class="w"> </span><span class="mh">1b3784</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x200</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3778:</span><span class="w"> </span><span class="nf">e3a03004</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b377c:</span><span class="w"> </span><span class="nf">e50b302c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-44</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3780:</span><span class="w"> </span><span class="nf">ea000001</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b378c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x208</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3784:</span><span class="w"> </span><span class="nf">e3a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3788:</span><span class="w"> </span><span class="nf">e50b302c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-44</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b378c:</span><span class="w"> </span><span class="nf">e14b26dc</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-108</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff94</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3790:</span><span class="w"> </span><span class="nf">e51bc088</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">ip</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-136</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff78</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3794:</span><span class="w"> </span><span class="nf">e51b1060</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-96</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3798:</span><span class="w"> </span><span class="nf">e58d1000</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b379c:</span><span class="w"> </span><span class="nf">e51b102c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-44</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37a0:</span><span class="w"> </span><span class="nf">e58d1004</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37a4:</span><span class="w"> </span><span class="nf">e1a00002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37a8:</span><span class="w"> </span><span class="nf">e1a01003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37ac:</span><span class="w"> </span><span class="nf">e51b2058</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-88</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37b0:</span><span class="w"> </span><span class="nf">e1a0300c</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">ip</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37b4:</span><span class="w"> </span><span class="nf">ebfadadb</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6a328</span> <span class="p"><</span><span class="no">mm_util_movie_record_time@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37b8:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37bc:</span><span class="w"> </span><span class="nf">e50b305c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-92</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37c0:</span><span class="w"> </span><span class="nf">e14b22d4</span><span class="w"> </span><span class="no">ldrd</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-36</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffdc</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37c4:</span><span class="w"> </span><span class="nf">e51bc088</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">ip</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-136</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff78</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37c8:</span><span class="w"> </span><span class="nf">e51b1060</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-96</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37cc:</span><span class="w"> </span><span class="nf">e58d1000</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37d0:</span><span class="w"> </span><span class="nf">e51b102c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-44</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37d4:</span><span class="w"> </span><span class="nf">e58d1004</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37d8:</span><span class="w"> </span><span class="nf">e1a00002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37dc:</span><span class="w"> </span><span class="nf">e1a01003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37e0:</span><span class="w"> </span><span class="nf">e51b2058</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-88</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37e4:</span><span class="w"> </span><span class="nf">e1a0300c</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">ip</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37e8:</span><span class="w"> </span><span class="nf">ebfadace</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6a328</span> <span class="p"><</span><span class="no">mm_util_movie_record_time@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37ec:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f0:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f4:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37f8:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b37fc:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000006</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b381c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x298</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3800:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3804:</span><span class="w"> </span><span class="nf">e2832003</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3808:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b380c:</span><span class="w"> </span><span class="nf">b1a03002</span><span class="w"> </span><span class="no">movlt</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3810:</span><span class="w"> </span><span class="nf">e1a03143</span><span class="w"> </span><span class="no">asr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3814:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3818:</span><span class="w"> </span><span class="nf">ea000007</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b383c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2b8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b381c:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3820:</span><span class="w"> </span><span class="nf">e3530001</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3824:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000004</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b383c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2b8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3828:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b382c:</span><span class="w"> </span><span class="nf">e1a02fa3</span><span class="w"> </span><span class="no">lsr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#31</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3830:</span><span class="w"> </span><span class="nf">e0823003</span><span class="w"> </span><span class="no">add</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3834:</span><span class="w"> </span><span class="nf">e1a030c3</span><span class="w"> </span><span class="no">asr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3838:</span><span class="w"> </span><span class="nf">e50b3018</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b383c:</span><span class="w"> </span><span class="nf">e51b2018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="err">></span><span class="w"> </span><span class="err">1</span><span class="nl">b3840:</span><span class="w"> </span><span class="nf">e3e03102</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#-2147483648</span><span class="w"> </span><span class="c1">; 0x80000000</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3844:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3848:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b3858</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2d4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b384c:</span><span class="w"> </span><span class="nf">e3003707</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1799</span><span class="w"> </span><span class="c1">; 0x707</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3850:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3854:</span><span class="w"> </span><span class="nf">ea000001</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3860</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x2dc</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3858:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b385c:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3860:</span><span class="w"> </span><span class="nf">e51b307c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-124</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff84</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3864:</span><span class="w"> </span><span class="nf">e3530007</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#7</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3868:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000039</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b386c:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3870:</span><span class="w"> </span><span class="nf">e3530003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3874:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000005</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3890</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x30c</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3878:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b387c:</span><span class="w"> </span><span class="nf">e3530095</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#149</span><span class="w"> </span><span class="c1">; 0x95</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3880:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b3890</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x30c</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3884:</span><span class="w"> </span><span class="nf">e3a03096</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#150</span><span class="w"> </span><span class="c1">; 0x96</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3888:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b388c:</span><span class="w"> </span><span class="nf">ea000030</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3890:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3894:</span><span class="w"> </span><span class="nf">e3530004</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3898:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000006</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b38b8</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x334</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b389c:</span><span class="w"> </span><span class="nf">e51b2018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38a0:</span><span class="w"> </span><span class="nf">e300312b</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#299</span><span class="w"> </span><span class="c1">; 0x12b</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38a4:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38a8:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b38b8</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x334</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38ac:</span><span class="w"> </span><span class="nf">e3a03f4b</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#300</span><span class="w"> </span><span class="c1">; 0x12c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38b0:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38b4:</span><span class="w"> </span><span class="nf">ea000026</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38b8:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38bc:</span><span class="w"> </span><span class="nf">e3530005</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#5</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38c0:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000006</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b38e0</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x35c</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38c4:</span><span class="w"> </span><span class="nf">e51b2018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38c8:</span><span class="w"> </span><span class="nf">e3003257</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#599</span><span class="w"> </span><span class="c1">; 0x257</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38cc:</span><span class="w"> </span><span class="nf">e1520003</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38d0:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b38e0</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x35c</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38d4:</span><span class="w"> </span><span class="nf">e3a03f96</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#600</span><span class="w"> </span><span class="c1">; 0x258</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38d8:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38dc:</span><span class="w"> </span><span class="nf">ea00001c</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38e0:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38e4:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38e8:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000005</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3904</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x380</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38ec:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38f0:</span><span class="w"> </span><span class="nf">e3530006</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#6</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38f4:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b3904</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x380</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38f8:</span><span class="w"> </span><span class="nf">e3a03007</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#7</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b38fc:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3900:</span><span class="w"> </span><span class="nf">ea000013</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3904:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3908:</span><span class="w"> </span><span class="nf">e3530001</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b390c:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000005</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3928</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3a4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3910:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3914:</span><span class="w"> </span><span class="nf">e353000e</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#14</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3918:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b3928</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3a4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b391c:</span><span class="w"> </span><span class="nf">e3a0300f</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#15</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3920:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3924:</span><span class="w"> </span><span class="nf">ea00000a</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3928:</span><span class="w"> </span><span class="nf">e51b3078</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-120</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff88</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b392c:</span><span class="w"> </span><span class="nf">e3530002</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3930:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000005</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b394c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3c8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3934:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3938:</span><span class="w"> </span><span class="nf">e353001d</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#29</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b393c:</span><span class="w"> </span><span class="nf">da000002</span><span class="w"> </span><span class="no">ble</span><span class="w"> </span><span class="mh">1b394c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3c8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3940:</span><span class="w"> </span><span class="nf">e3a0301e</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#30</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3944:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3948:</span><span class="w"> </span><span class="nf">ea000001</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3954</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3d0</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b394c:</span><span class="w"> </span><span class="nf">e51b3018</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-24</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3950:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3954:</span><span class="w"> </span><span class="nf">e3000583</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#1411</span><span class="w"> </span><span class="c1">; 0x583</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3958:</span><span class="w"> </span><span class="nf">ebfed32e</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b395c:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3960:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3964:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000004</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b397c</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x3f8</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3968:</span><span class="w"> </span><span class="nf">e3a00e3f</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#1008</span><span class="w"> </span><span class="c1">; 0x3f0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b396c:</span><span class="w"> </span><span class="nf">ebfed329</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168618</span> <span class="p"><</span><span class="no">_Z12UI_Get_Value14eUI_VALUE_ITEM@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3970:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3974:</span><span class="w"> </span><span class="nf">e353001f</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#31</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3978:</span><span class="w"> </span><span class="err">1</span><span class="nf">a000001</span><span class="w"> </span><span class="no">bne</span><span class="w"> </span><span class="mh">1b3984</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x400</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b397c:</span><span class="w"> </span><span class="nf">e3a03001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3980:</span><span class="w"> </span><span class="nf">ea000000</span><span class="w"> </span><span class="no">b</span><span class="w"> </span><span class="mh">1b3988</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x404</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3984:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3988:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b398c:</span><span class="w"> </span><span class="err">0</span><span class="nf">a000001</span><span class="w"> </span><span class="no">beq</span><span class="w"> </span><span class="mh">1b3998</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x414</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3990:</span><span class="w"> </span><span class="nf">e3e03102</span><span class="w"> </span><span class="no">mvn</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#-2147483648</span><span class="w"> </span><span class="c1">; 0x80000000</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3994:</span><span class="w"> </span><span class="nf">e50b301c</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3998:</span><span class="w"> </span><span class="nf">e3a0007c</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#124</span><span class="w"> </span><span class="c1">; 0x7c</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b399c:</span><span class="w"> </span><span class="nf">e51b101c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39a0:</span><span class="w"> </span><span class="nf">ebfed36c</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">168758</span> <span class="p"><</span><span class="no">_Z12UI_Set_Value14eUI_VALUE_ITEMi@@Base</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39a4:</span><span class="w"> </span><span class="nf">e3003048</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#72</span><span class="w"> </span><span class="c1">; 0x48</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39a8:</span><span class="w"> </span><span class="nf">e340304e</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#78</span><span class="w"> </span><span class="c1">; 0x4e</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39ac:</span><span class="w"> </span><span class="nf">e5931000</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">r3</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39b0:</span><span class="w"> </span><span class="nf">e24b2080</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#128</span><span class="w"> </span><span class="c1">; 0x80</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39b4:</span><span class="w"> </span><span class="nf">e30a3790</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#42896</span><span class="w"> </span><span class="c1">; 0xa790</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39b8:</span><span class="w"> </span><span class="nf">e3403026</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#38</span><span class="w"> </span><span class="c1">; 0x26</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39bc:</span><span class="w"> </span><span class="nf">e58d3000</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39c0:</span><span class="w"> </span><span class="nf">e51b301c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-28</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffe4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39c4:</span><span class="w"> </span><span class="nf">e58d3004</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39c8:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39cc:</span><span class="w"> </span><span class="nf">e58d3008</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#8</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39d0:</span><span class="w"> </span><span class="nf">e1a00001</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r1</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39d4:</span><span class="w"> </span><span class="nf">e1a01002</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="no">r2</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39d8:</span><span class="w"> </span><span class="nf">e30a2780</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#42880</span><span class="w"> </span><span class="c1">; 0xa780</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39dc:</span><span class="w"> </span><span class="nf">e3402026</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#38</span><span class="w"> </span><span class="c1">; 0x26</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39e0:</span><span class="w"> </span><span class="nf">e51b3028</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-40</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffd8</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39e4:</span><span class="w"> </span><span class="nf">ebfadf8c</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6b81c</span> <span class="p"><</span><span class="no">mm_camcorder_set_attributes@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39e8:</span><span class="w"> </span><span class="nf">e1a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="no">r0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39ec:</span><span class="w"> </span><span class="nf">e50b3054</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-84</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffac</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39f0:</span><span class="w"> </span><span class="nf">e51b3054</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-84</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffac</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39f4:</span><span class="w"> </span><span class="nf">e3530000</span><span class="w"> </span><span class="no">cmp</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39f8:</span><span class="w"> </span><span class="err">0</span><span class="nf">a000012</span><span class="w"> </span><span class="no">beq</span><span class="w"> </span><span class="mh">1b3a48</span> <span class="p"><</span><span class="no">_Z25UI_Get_Movie_Remaian_Timev@@Base</span><span class="p">+</span><span class="mi">0x4c4</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b39fc:</span><span class="w"> </span><span class="nf">e51b2080</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-128</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff80</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a00:</span><span class="w"> </span><span class="nf">e30a37a4</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#42916</span><span class="w"> </span><span class="c1">; 0xa7a4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a04:</span><span class="w"> </span><span class="nf">e3403026</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#38</span><span class="w"> </span><span class="c1">; 0x26</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a08:</span><span class="w"> </span><span class="nf">e58d3000</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a0c:</span><span class="w"> </span><span class="nf">e51b3054</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-84</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffac</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a10:</span><span class="w"> </span><span class="nf">e58d3004</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#4</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a14:</span><span class="w"> </span><span class="nf">e58d2008</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="mi">#8</span><span class="p">]</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a18:</span><span class="w"> </span><span class="nf">e30a0760</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#42848</span><span class="w"> </span><span class="c1">; 0xa760</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a1c:</span><span class="w"> </span><span class="nf">e3400026</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="mi">#38</span><span class="w"> </span><span class="c1">; 0x26</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a20:</span><span class="w"> </span><span class="nf">e30b1744</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="mi">#46916</span><span class="w"> </span><span class="c1">; 0xb744</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a24:</span><span class="w"> </span><span class="nf">e3401026</span><span class="w"> </span><span class="no">movt</span><span class="w"> </span><span class="no">r1</span><span class="p">,</span><span class="w"> </span><span class="mi">#38</span><span class="w"> </span><span class="c1">; 0x26</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a28:</span><span class="w"> </span><span class="nf">e3002251</span><span class="w"> </span><span class="no">movw</span><span class="w"> </span><span class="no">r2</span><span class="p">,</span><span class="w"> </span><span class="mi">#593</span><span class="w"> </span><span class="c1">; 0x251</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a2c:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a30:</span><span class="w"> </span><span class="nf">ebfae4ad</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6ccec</span> <span class="p"><</span><span class="no">slpcam_print_log@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a34:</span><span class="w"> </span><span class="nf">e51b3080</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-128</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff80</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a38:</span><span class="w"> </span><span class="nf">e1a00003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a3c:</span><span class="w"> </span><span class="nf">ebfade50</span><span class="w"> </span><span class="no">bl</span><span class="w"> </span><span class="mh">6b384</span> <span class="p"><</span><span class="no">free@plt</span><span class="p">></span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a40:</span><span class="w"> </span><span class="nf">e3a03000</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="mi">#0</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a44:</span><span class="w"> </span><span class="nf">e50b3080</span><span class="w"> </span><span class="no">str</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-128</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffff80</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a48:</span><span class="w"> </span><span class="nf">e51b305c</span><span class="w"> </span><span class="no">ldr</span><span class="w"> </span><span class="no">r3</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#-92</span><span class="p">]</span><span class="w"> </span><span class="c1">; 0xffffffa4</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a4c:</span><span class="w"> </span><span class="nf">e1a00003</span><span class="w"> </span><span class="no">mov</span><span class="w"> </span><span class="no">r0</span><span class="p">,</span><span class="w"> </span><span class="no">r3</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a50:</span><span class="w"> </span><span class="nf">e24bd014</span><span class="w"> </span><span class="no">sub</span><span class="w"> </span><span class="no">sp</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="mi">#20</span></span>
<span class="code-line"><span class="w"> </span><span class="err">1</span><span class="nl">b3a54:</span><span class="w"> </span><span class="nf">e8bd88f0</span><span class="w"> </span><span class="no">pop</span><span class="w"> </span><span class="p">{</span><span class="no">r4</span><span class="p">,</span><span class="w"> </span><span class="no">r5</span><span class="p">,</span><span class="w"> </span><span class="no">r6</span><span class="p">,</span><span class="w"> </span><span class="no">r7</span><span class="p">,</span><span class="w"> </span><span class="no">fp</span><span class="p">,</span><span class="w"> </span><span class="no">pc</span><span class="p">}</span></span>
<span class="code-line"></span></pre></div>Samsung NX300M Mods: Unlimited Movie Length2021-03-30T11:45:00+02:002021-03-30T11:45:00+02:00snaumstag:www.snaums.de,2021-03-30:/fotografie/samsung-nx300m-mods-unlimited-movie-length.html<p>I am currently planning a few video projects and was searching for some cheap, preferably second hand, cameras on-line. I stumbled upon the discontinued NX-line of cameras by Samsung and had a browse through the spec sheets of some of them and found the NX300 and NX300M [<a href="https://www.digitalkamera.de/Kamera/Samsung/NX300M.aspx">1</a>], which are …</p><p>I am currently planning a few video projects and was searching for some cheap, preferably second hand, cameras on-line. I stumbled upon the discontinued NX-line of cameras by Samsung and had a browse through the spec sheets of some of them and found the NX300 and NX300M [<a href="https://www.digitalkamera.de/Kamera/Samsung/NX300M.aspx">1</a>], which are more or less identical, except the articulating screen of the NX300M has what is known as a selfie-mode.</p>
<p>For me the most interesting properties are that it can shoot 1080p60 video (while 50fps is more useful for me in Germany), it has interchangeable lenses, manual modes and is a DSLM, so you can essentially adapt every old lens onto it, you can find. Unfortunately there are some downsides: It can only shoot 21 minutes (about 4 GiB) of 1080p50/60 video, the bitrate of that video is not that great, so on higher ISO-values the video gets really blocky and it does not have a microphone input (except a weird proprietary microphone [<a href="https://www.dpreview.com/forums/thread/3989299">5</a>], which sits on the hot shoe. However, for about 100 € per camera these are quite obtainable.</p>
<p>So I've started to poke around with a search engine of my choice and found some very interesting posts by people hacking the Samsung NX300 and NX300M and executing their own code [<a href="https://op-co.de/blog/posts/hacking_the_nx300/">2</a>,<a href="https://github.com/ge0rg/samsung-nx-hacks">4</a>], even for auto-backup over the built-in wifi [<a href="https://lemmster.de/auto-backup-from-nx300-via-ftp.html">6</a>], getting the source from Samsung [<a href="https://opensource.samsung.com">7</a>] (which is still possible, however you have to ask for it), hacking the firmware to remove the movie length limit [<a href="https://www.dpreview.com/forums/post/56754944">3</a>], and finding the developer menu [[8]], which also has some settings for removing the video limit.</p>
<p>While all of the resources are still on-line, I will be copying them in a few blog posts, when I find something out. First of all: remove the movie limit. That's easy. </p>
<p>You enter the developer menu by putting a file in the root-directory of the SD-Card with the name <code>nx_dev.adj</code>. The content has to be <code>smart_camera</code>, exactly 12 bytes in length. Make sure, your editor does not add additional bytes at the end, maybe open the file in hexedit or a different hex editor to make absolutely sure. Then you boot up your camera with the SD-Card inside, switch it into AUTO-mode and enter the following: <strong>DOWN</strong>, <strong>OK</strong>, <strong>UP</strong>, <strong>OK</strong>, <strong>RIGHT</strong>, hold <strong>EV</strong>, press and release <strong>OK</strong>, release EV. Bosh, you should be in the developer menu.</p>
<p>The only really useful thing here is in the system parameters menu, where you can change the overheat power-off temperature, disable power saving features, disable movie length, disable the need of attaching a lens to the camera (especially useful when dealing with defective cameras) and allow you to capture shots even when the autofocus-system cannot lock on.</p>
<p>I undertook other things and looked into the source code, however have not been able to build an image up until now, and have not looked into the hacked firmware for the NX300 camera. I would love to investigate the microphone input, however I did not come across the external microphone up until now (if you have one and want to get rid of it, email me!), I would like to increase the bitrate, however these properties are buried inside a binary blob and I was not able to reverse engineer the drime4 driver or the MMAL-interface to it. The autoexec.sh does not help me, at least not for now.</p>
<h2 id="references">References</h2>
<p>[1] <a href="https://www.digitalkamera.de/Kamera/Samsung/NX300M.aspx">https://www.digitalkamera.de/Kamera/Samsung/NX300M.aspx</a><br/>
[2] <a href="https://op-co.de/blog/posts/hacking_the_nx300/">https://op-co.de/blog/posts/hacking_the_nx300/</a><br/>
[3] <a href="https://www.dpreview.com/forums/post/56754944">https://www.dpreview.com/forums/post/56754944</a><br/>
[4] <a href="https://github.com/ge0rg/samsung-nx-hacks">https://github.com/ge0rg/samsung-nx-hacks</a><br/>
[5] <a href="https://www.dpreview.com/forums/thread/3989299">https://www.dpreview.com/forums/thread/3989299</a><br/>
[6] <a href="https://lemmster.de/auto-backup-from-nx300-via-ftp.html">https://lemmster.de/auto-backup-from-nx300-via-ftp.html</a><br/>
[7] <a href="https://opensource.samsung.com">https://opensource.samsung.com</a></p>