Function at 0x6951b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov edi, edx
mov esi, ecx
push 0
call fcn.0069aea0
add esp, 4
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
pxor xmm0, xmm0
movdqu xmmword [esi + 0xc], xmm0
movdqu xmmword [esi + 0x1c], xmm0
movdqu xmmword [esi + 0x64], xmm0
push 2
mov dword [esp + 4], esi
call dword [0x71401c]
add esp, 4
push edi
push str.Parsing_boot_image:___s__n
push eax
call fcn.00695190
add esp, 0xc
mov edx, dword [esi + 4]
test edx, edx
jle 0x69603e
lea eax, [esi + 0xc]
mov dword [esp + 0xc], eax
mov eax, 0x72656461
mov ecx, 0x6f6c646e
mov esi, 0x6f636573
mov edi, 0x2b676d69
movd xmm2, edi
mov edi, dword [esp]
mov ebp, dword [edi]
movd xmm0, esi
mov esi, dword [esp]
punpckldq xmm2, xmm0
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm0, xmm1
punpcklqdq xmm2, xmm0
movdqu xmmword [esp + 0x38], xmm2
jmp 0x69528c
push 2
call dword [0x71401c]
add esp, 4
push str.Invalid_boot_image_header__n
nop word cs:[eax + eax]
push eax
call fcn.00695190
add esp, 8
mov esi, dword [esp]
inc ebp
mov edx, dword [esi + 4]
mov eax, dword [esi]
add eax, edx
cmp ebp, eax
jae 0x69603e
mov ecx, ebp
call fcn.0069a780
dec eax
cmp eax, 4
ja case.default.0x695299
jmp dword [eax*4 + 0x711a38]
mov eax, dword [esp + 0xc]
or byte [eax], 4
add ebp, 0xffff
jmp case.default.0x695299
mov eax, dword [esp + 0xc]
or byte [eax], 0x80
push 2
call dword [0x71401c]
add esp, 4
push str.TEGRA_BLOB_n
push eax
call fcn.00695190
add esp, 8
add ebp, 0x67
jmp 0x695279
push 2
call dword [0x71401c]
add esp, 4
push str.VENDOR_BOOT_HDR_n
push eax
call fcn.00695190
add esp, 8
mov esi, dword [ebp + 8]
push 8
call fcn.0049b8b0
add esp, 4
mov ebx, eax
cmp esi, 4
jne 0x695417
mov dword [ebx], 0x705ac4
push 0x850
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebx + 4], eax
push 0x850
push ebp
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, 0x705ac4
jmp 0x695441
mov eax, dword [esp + 0xc]
or byte [eax], 0x18
push 2
call dword [0x71401c]
add esp, 4
push str.DHTB_HDR_n
push eax
call fcn.00695190
add esp, 8
add ebp, 0x1ff
jmp 0x695279
cmp dword [ebp + 0x24], 0x1ffffff
jbe 0x6953bc
push 2
call dword [0x71401c]
add esp, 4
push str.PXA_BOOT_HDR_n
push eax
call fcn.00695190
add esp, 8
push 8
call fcn.0049b8b0
add esp, 4
mov ebx, eax
mov dword [eax], 0x705d0c
push 0x668
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebx + 4], eax
push 0x668
push ebp
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, 0x705d0c
jmp 0x695441
xor ebx, ebx
nop
mov eax, ebx
add eax, 0xfffffc0a
jns 0x6955eb
lea esi, [ebx + ebp]
mov eax, 0x3f6
sub eax, ebx
push eax
push 0x6d
push esi
call sub.msvcrt.dll_memchr
add esp, 0xc
test eax, eax
je 0x6955eb
mov edi, eax
push 0xb
push str.microloader
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x6955c9
sub ebx, esi
add ebx, edi
inc ebx
cmp ebx, 0x400
jle 0x6953c0
jmp 0x6955eb
mov dword [ebx], 0x705bd4
push 0x840
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebx + 4], eax
push 0x840
push ebp
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, 0x705bd4
mov dword [esp + 4], ebp
mov ecx, ebx
call dword [eax + 0x44]
test eax, eax
je 0x695485
cmp byte [eax + 0x18], 0
jne 0x69547e
cmp byte [eax + 0x19], 0
jne 0x69547e
cmp byte [eax + 0x1a], 0
jne 0x69547e
cmp byte [eax + 0x1b], 0
jne 0x69547e
cmp byte [eax + 0x1c], 0
jne 0x69547e
cmp byte [eax + 0x1d], 0
jne 0x69547e
cmp byte [eax + 0x1e], 0
jne 0x69547e
cmp byte [eax + 0x1f], 0
je 0x695485
mov eax, dword [esp + 0xc]
or byte [eax], 0x40
mov ecx, ebx
call fcn.00694b90
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x8c]
mov edi, eax
mov eax, dword [esp + 4]
add eax, edi
mov ecx, dword [esp]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
add edi, eax
dec edi
mov eax, edi
xor edx, edx
div ecx
sub edi, edx
mov eax, dword [esp + 4]
add eax, edi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x6954ea
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov dword [edx + 0x50], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
add edi, eax
dec edi
mov eax, edi
xor edx, edx
div ecx
sub edi, edx
mov eax, dword [esp + 4]
add eax, edi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x695533
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov dword [edx + 0x54], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
add edi, eax
dec edi
mov eax, edi
xor edx, edx
div ecx
sub edi, edx
mov eax, dword [esp + 4]
add eax, edi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x69557c
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov dword [edx + 0x58], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
add edi, eax
dec edi
mov eax, edi
xor edx, edx
div ecx
sub edi, edx
mov eax, dword [esp + 4]
add eax, edi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x6956fd
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov eax, dword [ebp + 0x400]
mov ecx, 0x52444e41
xor eax, ecx
mov ecx, dword [ebp + 0x404]
mov edx, 0x2144494f
xor ecx, edx
or ecx, eax
je 0x695795
lea edi, [ebp + 0x40]
push 0xa
push str.Red_Loader
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
mov esi, 0x100000
mov dword [esp + 4], str.NOOKHD_LOADER_n
mov ebx, 0x100
test eax, eax
je 0x6956bd
push 0xc
push str.Green_Loader
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x6956bd
push 0xe
push str.Green_Recovery
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x6956bd
movdqu xmm0, xmmword [edi]
pcmpeqb xmm0, xmmword [str.eMMC_boot.imgseeMMC_recovery.imSEANDROIDENFORCEA]
movdqu xmm1, xmmword [edi + 0xa]
movdqu xmm2, xmmword [esp + 0x38]
pcmpeqb xmm1, xmm2
pand xmm1, xmm0
pmovmskb eax, xmm1
cmp eax, 0xffff
je 0x6956bd
movdqu xmm0, xmmword [edi]
pcmpeqb xmm0, xmmword [0x704300]
movdqu xmm1, xmmword [edi + 0xe]
pcmpeqb xmm1, xmm2
pand xmm1, xmm0
pmovmskb eax, xmm1
cmp eax, 0xffff
je 0x6956bd
lea eax, [ebp + 0x30]
push 0xa
push str.BauwksBoot
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
mov ecx, ebp
test eax, eax
jne 0x6956df
mov esi, 0x40000
mov dword [esp + 4], str.ACCLAIM_LOADER_n
mov ebx, 0x200
mov eax, dword [esp + 0xc]
or dword [eax], ebx
push 2
call dword [0x71401c]
add esp, 4
push dword [esp + 4]
push eax
call fcn.00695190
add esp, 8
mov ecx, esi
add ecx, ebp
mov esi, ecx
call fcn.00696120
mov ebx, eax
mov eax, esi
test ebx, ebx
je 0x695256
mov dword [esp + 4], eax
mov eax, dword [ebx]
jmp 0x695445
mov dword [edx + 0x5c], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x54]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
add edi, eax
dec edi
mov eax, edi
xor edx, edx
div ecx
sub edi, edx
mov eax, dword [esp + 4]
add eax, edi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x695746
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov dword [edx + 0x60], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x6c]
mov esi, dword [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add edi, esi
lea esi, [eax + edi]
dec esi
mov eax, esi
xor edx, edx
div ecx
sub esi, edx
mov eax, dword [esp + 4]
lea edx, [eax + esi]
mov ecx, dword [esp]
mov eax, dword [ecx]
add eax, dword [ecx + 4]
cmp edx, eax
jbe 0x69581c
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov eax, dword [esp + 0xc]
or byte [eax + 1], 4
push 2
call dword [0x71401c]
add esp, 4
lea ebx, [ebp + 0x400]
push str.AMONET_MICROLOADER_n
push eax
call fcn.00695190
add esp, 8
mov eax, dword [ebx]
mov ecx, 0x52444e41
xor eax, ecx
mov ecx, dword [ebx + 4]
mov edx, 0x2144494f
xor ecx, edx
or ecx, eax
jne 0x695256
mov esi, dword [ebp + 0x424]
push 1
push esi
add esi, 0xfffffc00
call sub.msvcrt.dll_calloc
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, edi
call fcn.00696120
mov ebx, eax
push edi
call sub.msvcrt.dll_free
add esp, 4
mov eax, ebp
test ebx, ebx
jne 0x6956f2
jmp 0x695256
mov dword [esp + 0x10], edx
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
test eax, eax
je 0x695854
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov edi, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add eax, edi
mov dword [esp + 8], eax
lea eax, [edi + ecx]
dec eax
xor edx, edx
div ecx
sub esi, edx
mov eax, dword [esp + 8]
add esi, eax
dec esi
mov eax, dword [esp + 4]
add eax, esi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x69587b
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + pe_nt_image_headers32]
test eax, eax
je 0x6958af
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + pe_nt_image_headers32]
mov edi, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add eax, edi
mov dword [esp + 8], eax
lea eax, [edi + ecx]
dec eax
xor edx, edx
div ecx
sub esi, edx
mov eax, dword [esp + 8]
add esi, eax
dec esi
mov eax, dword [esp + 4]
add eax, esi
mov edx, dword [esp]
mov ecx, dword [edx]
add ecx, dword [edx + 4]
cmp eax, ecx
jbe 0x6958d6
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x7c]
test eax, eax
je 0x69590e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x7c]
mov edi, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, eax
add eax, edi
mov dword [esp + 8], eax
lea eax, [edi + ecx]
dec eax
xor edx, edx
div ecx
mov edi, esi
sub edi, edx
mov eax, dword [esp + 8]
add edi, eax
dec edi
jmp 0x695910
mov edi, esi
mov edx, dword [esp + 4]
lea eax, [edx + edi]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, dword [esi + 4]
cmp eax, ecx
jbe 0x695938
push 2
call dword [0x71401c]
add esp, 4
push str.Corrupted_boot_image__n
jmp 0x695270
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edi
mov edx, eax
mov edi, dword [esp + 0x10]
sub edx, edi
mov dword [esi + 0x6c], edi
mov dword [esi + 0x70], edx
sub ecx, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], ecx
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [eax]
test ecx, ecx
je 0x695d71
mov eax, dword [esp]
mov esi, dword [eax + 0x4c]
jle 0x695a31
lea edi, [esi + ecx]
mov edx, esi
mov dword [esp + 8], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov eax, edi
sub eax, edx
js 0x695a31
test edx, edx
je 0x695a31
cmp edi, edx
je 0x695a31
xor edi, edi
mov dword [esp + 0x38], eax
nop word cs:[eax + eax]
sub eax, edi
add eax, 0xfffffffc
js 0x695a2d
mov ebp, edx
lea esi, [edx + edi]
inc eax
push eax
push 0xd0
push esi
call sub.msvcrt.dll_memchr
add esp, 0xc
test eax, eax
je 0x695a2d
cmp dword [eax], 0xedfe0dd0
je 0x6959e9
sub edi, esi
add edi, eax
inc edi
mov eax, dword [esp + 0x38]
cmp edi, eax
mov edx, ebp
jle 0x6959b0
jmp 0x695a2d
mov edx, eax
mov ecx, dword [eax + 4]
bswap ecx
mov edi, dword [esp + 0x10]
mov eax, edi
mov ebp, edx
sub eax, edx
cmp ecx, eax
mov edx, dword [esp]
ja 0x695a18
mov ecx, dword [ebp + 8]
bswap ecx
cmp ecx, eax
ja 0x695a18
cmp dword [ebp + ecx], 0x1000000
je 0x696045
mov eax, ebp
add eax, 0x28
mov edx, eax
cmp eax, edi
mov esi, dword [esp + 8]
jb 0x695982
jmp 0x695a31
mov esi, dword [esp + 8]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, dword [eax]
mov ecx, esi
call fcn.006960e0
mov ecx, dword [esp]
mov dword [ecx + 0x10], eax
cmp eax, 0xf
jne 0x695af9
push 2
call dword [0x71401c]
add esp, 4
push str.MTK_KERNEL_HDR_n
push eax
call fcn.00695190
add esp, 8
mov ecx, dword [esp]
or byte [ecx + 0xc], 1
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x2c], eax
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x2c]
push dword [ecx + 4]
push str.SIZE
push 0xf
push str.__s___u__n
push eax
call fcn.00695190
add esp, 0x14
push 2
call dword [0x71401c]
add esp, 4
mov esi, dword [esp]
mov ecx, dword [esi + 0x2c]
add ecx, 8
push ecx
push str.NAME
push 0xf
push str.__s___s__n
push eax
call fcn.00695190
add esp, 0x14
add dword [esi + 0x4c], 0x200
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
add dword [eax], 0xfffffe00
mov eax, dword [esp]
mov edi, dword [eax + 0x4c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, dword [eax]
mov ecx, edi
call fcn.006960e0
mov ecx, dword [esp]
mov dword [ecx + 0x10], eax
cmp eax, 0x11
jne 0x695d36
mov edi, dword [ecx + 0x4c]
mov dword [ecx + 0x34], edi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, dword [eax]
mov ecx, edi
push 4
push 0x7058cd
call fcn.006a8e00
add esp, 8
mov edi, eax
push 2
call dword [0x71401c]
add esp, 4
test edi, edi
je 0x695d28
push str.ZIMAGE_KERNEL_n
push eax
call fcn.00695190
add esp, 8
mov eax, dword [esp]
mov ecx, dword [eax + 0x34]
mov ebp, dword [eax + 0x4c]
sub edi, ebp
mov dword [eax + 0x38], edi
mov eax, dword [ecx + 0x2c]
sub eax, dword [ecx + 0x28]
mov ecx, dword [ebp + eax - 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + eax - 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + eax - 0x38]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + eax - 0x34]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + eax - 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + eax - 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + eax - 0x28]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + eax - 0x24]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + eax - 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + eax - 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + eax - 0x18]
mov dword [esp + 8], ecx
mov ecx, dword [ebp + eax - 0x14]
mov dword [esp + 0x38], ecx
mov edx, dword [ebp + eax - 0x10]
mov esi, dword [ebp + eax - 0xc]
mov edi, dword [ebp + eax - 4]
lea ecx, [eax - 0xff]
cmp edi, ecx
jbe 0x695bd7
cmp edi, eax
jb 0x695cdb
mov edi, dword [ebp + eax - 8]
cmp edi, ecx
jbe 0x695be7
cmp edi, eax
jb 0x695cdb
cmp esi, ecx
jbe 0x695bf5
mov edi, esi
cmp esi, eax
jb 0x695cdb
cmp edx, ecx
jbe 0x695c03
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x38], ecx
jbe 0x695c17
mov edx, dword [esp + 0x38]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 8], ecx
jbe 0x695c2b
mov edx, dword [esp + 8]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x10], ecx
jbe 0x695c3f
mov edx, dword [esp + 0x10]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x14], ecx
jbe 0x695c53
mov edx, dword [esp + 0x14]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x34], ecx
jbe 0x695c63
mov edx, dword [esp + 0x34]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x30], ecx
jbe 0x695c73
mov edx, dword [esp + 0x30]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x2c], ecx
jbe 0x695c83
mov edx, dword [esp + 0x2c]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x28], ecx
jbe 0x695c93
mov edx, dword [esp + 0x28]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x24], ecx
jbe 0x695ca3
mov edx, dword [esp + 0x24]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x20], ecx
jbe 0x695cb3
mov edx, dword [esp + 0x20]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x1c], ecx
jbe 0x695cc3
mov edx, dword [esp + 0x1c]
mov edi, edx
cmp edx, eax
jb 0x695cdb
cmp dword [esp + 0x18], ecx
jbe 0x69609a
mov ecx, dword [esp + 0x18]
mov edi, ecx
cmp ecx, eax
jae 0x69609a
mov eax, dword [esp + 0xc]
or byte [eax + 1], 0x20
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
add ebp, edi
mov eax, dword [eax]
sub eax, edi
mov ecx, dword [esp]
mov dword [ecx + 0x3c], ebp
mov dword [ecx + 0x40], eax
mov esi, dword [ecx + 0x38]
add dword [ecx + 0x4c], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
sub edi, esi
mov dword [eax], edi
mov eax, dword [esp]
mov edi, dword [eax + 0x4c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edx, dword [eax]
mov ecx, edi
call fcn.006960e0
mov ecx, dword [esp]
mov dword [ecx + 0x10], eax
jmp 0x695d36
push str.__Could_not_find_zImage_gzip_piggy__keeping_raw_kernel_n
push eax
call fcn.00695190
add esp, 8
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [esp]
mov edx, dword [ecx + 0x10]
lea esi, [edx - 6]
mov ecx, 0x70687d
cmp esi, 0xb
ja 0x695d5b
mov ecx, dword [edx*4 + 0x706888]
push ecx
push str.KERNEL_FMT
push 0xf
push str.__s___s__n
push eax
call fcn.00695190
add esp, 0x14
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov edi, dword [eax]
test edi, edi
je 0x695ea4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
je 0x695daa
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x20]
cmp eax, 4
jb 0x695daa
mov eax, dword [esp]
lea ebp, [eax + 0x14]
mov dword [eax + 0x14], 0
jmp 0x695e6c
mov esi, dword [esp]
mov ecx, dword [esi + 0x50]
mov edx, edi
call fcn.006960e0
lea ebp, [esi + 0x14]
mov dword [esi + 0x14], eax
cmp eax, 0xf
jne 0x695e6c
push 2
call dword [0x71401c]
add esp, 4
push str.MTK_RAMDISK_HDR_n
push eax
call fcn.00695190
add esp, 8
mov ecx, dword [esp]
or byte [ecx + 0xc], 2
mov eax, dword [ecx + 0x50]
mov dword [ecx + 0x30], eax
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x30]
push dword [ecx + 4]
push str.SIZE
push 0xf
push str.__s___u__n
push eax
call fcn.00695190
add esp, 0x14
push 2
call dword [0x71401c]
add esp, 4
mov esi, dword [esp]
mov ecx, dword [esi + 0x30]
add ecx, 8
push ecx
push str.NAME
push 0xf
push str.__s___s__n
push eax
call fcn.00695190
add esp, 0x14
add dword [esi + 0x50], 0x200
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
add dword [eax], 0xfffffe00
mov eax, dword [esp]
mov edi, dword [eax + 0x50]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov edx, dword [eax]
mov ecx, edi
call fcn.006960e0
mov dword [ebp], eax
push 2
call dword [0x71401c]
add esp, 4
mov edx, dword [ebp]
lea esi, [edx - 6]
mov ecx, 0x70687d
cmp esi, 0xb
ja 0x695e8e
mov ecx, dword [edx*4 + 0x706888]
push ecx
push str.RAMDISK_FMT
push 0xf
push str.__s___s__n
push eax
call fcn.00695190
add esp, 0x14
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
mov edi, dword [eax]
test edi, edi
mov esi, dword [esp]
je 0x695f2e
mov ebp, dword [esi + 0x58]
mov ecx, ebp
mov edx, edi
call fcn.0069a780
cmp eax, 0xc
jne 0x695eed
mov eax, 4
nop
lea ecx, [eax + 4]
cmp ecx, edi
ja 0x695ee8
add ecx, dword [ebp + eax]
mov eax, ecx
cmp ecx, edi
jbe 0x695ed0
mov eax, 0xd
jmp 0x695eed
mov eax, 0xc
mov dword [esi + 0x18], eax
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [esp]
mov edx, dword [ecx + 0x18]
lea esi, [edx - 6]
mov ecx, 0x70687d
cmp esi, 0xb
ja 0x695f15
mov ecx, dword [edx*4 + 0x706888]
push ecx
push str.EXTRA_FMT
push 0xf
push str.__s___s__n
push eax
call fcn.00695190
add esp, 0x14
mov esi, dword [esp]
mov eax, dword [esi + 0x28]
test eax, eax
mov edi, esi
je 0x696033
cmp eax, 0x10
mov esi, edi
jb 0x695fa8
mov eax, dword [esi + 0x24]
movdqu xmm0, xmmword [eax]
pcmpeqb xmm0, xmmword [0x704310]
pmovmskb ecx, xmm0
cmp ecx, 0xffff
je 0x695f80
movdqu xmm0, xmmword [eax]
pcmpeqb xmm0, xmmword [0x704320]
pmovmskb eax, xmm0
cmp eax, 0xffff
jne 0x695fa8
mov esi, 0x20
mov edi, str.LG_BUMP_IMAGE_n
jmp 0x695f8a
mov esi, 0x10
mov edi, str.SAMSUNG_SEANDROID_n
push 2
call dword [0x71401c]
add esp, 4
push edi
push eax
call fcn.00695190
add esp, 8
mov eax, dword [esp + 0xc]
or dword [eax], esi
mov esi, dword [esp]
push 0
push esi
call fcn.0046c610
add esp, 8
test al, al
je 0x695fdb
push 2
call dword [0x71401c]
add esp, 4
push str.AVB1_SIGNED_n
push eax
call fcn.00695190
add esp, 8
mov eax, dword [esp + 0xc]
or byte [eax + 1], 8
mov esi, dword [esp]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
cmp dword [eax + ecx - 0x40], 0x66425641
mov edi, esi
jne 0x696033
lea edx, [eax + ecx]
add eax, ecx
add eax, 0xffffffc0
mov dword [edi + 0x44], eax
mov esi, dword [edx - 0x28]
bswap esi
mov eax, dword [esp + 4]
cmp dword [eax + esi], 0x30425641
jne 0x696033
push 2
call dword [0x71401c]
add esp, 4
mov ebp, dword [esp + 4]
add ebp, esi
push str.VBMETA_n
push eax
call fcn.00695190
add esp, 8
mov edi, dword [esp]
or byte [edi + 0xd], 0x10
mov dword [edi + 0x48], ebp
mov dword [edi + 8], ebx
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
call sub.msvcrt.dll_exit
mov esi, dword [esp + 8]
sub ebp, esi
test ebp, ebp
mov eax, dword [esp + 0x14]
jle 0x695a31
add esi, ebp
mov edi, ebp
sub eax, ebp
mov dword [edx + 0x64], esi
mov dword [edx + 0x68], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [eax], edi
push 2
call dword [0x71401c]
add esp, 4
mov esi, dword [esp]
push dword [esi + 0x68]
push str.KERNEL_DTB_SZ
push 0xf
push str.__s___zu__n
push eax
call fcn.00695190
add esp, 0x14
mov esi, dword [esi + 0x4c]
jmp 0x695a31
push 2
call dword [0x71401c]
add esp, 4
push str.__Could_not_find_end_of_zImage_piggy__keeping_raw_kernel_n
jmp 0x695d2d