Function at 0x6933d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x10d8
call fcn.005d1cf0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
call fcn.0049c7e0
call fcn.00477410
push 0
call sub.msvcrt.dll__umask
add esp, 4
cmp edi, 1
jle 0x694902
mov dword [ebp - 0x10], esi
mov ebx, dword [esi + 4]
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
cmp eax, 2
jb 0x69345b
movzx eax, word [ebx]
cmp eax, 0x2d2d
je 0x693448
cmp esi, 7
jne 0x69345b
mov eax, 0x61656c63
xor eax, dword [ebx]
mov ecx, 0x70756e61
xor ecx, dword [ebx + 3]
or ecx, eax
je 0x6937a4
mov esi, 7
mov dl, 1
jmp 0x69345d
add ebx, 2
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
cmp esi, 7
je 0x693428
xor edx, edx
cmp edi, 3
jb 0x6948a6
lea eax, [esi - 4]
cmp eax, 6
ja case.0x693472.7
jmp dword [eax*4 + 0x7119f8]
cmp dword [ebx], 0x31616873
je 0x693870
cmp dword [ebx], 0x6e676973
jne 0x6935e7
cmp edi, 5
je 0x694906
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
cmp edi, 4
jb 0x694095
mov ecx, dword [eax + 0xc]
cmp edi, 5
mov dword [ebp - 0x14], ecx
jbe 0x694401
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x10], eax
jmp 0x69440f
mov eax, 0x696c7073
xor eax, dword [ebx]
movzx ecx, byte [ebx + 4]
xor ecx, 0x74
or ecx, eax
jne 0x6935e7
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebx + 8]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 2
jne 0x693501
movzx eax, word [esi]
cmp eax, 0x6e2d
je 0x6940a8
mov ecx, esi
xor edx, edx
add esp, 0x10d8
pop esi
pop edi
pop ebx
pop ebp
jmp 0x696cc0
mov eax, 0x61706e75
xor eax, dword [ebx]
movzx ecx, word [ebx + 4]
xor ecx, 0x6b63
or ecx, eax
je 0x69393c
mov eax, 0x61706572
xor eax, dword [ebx]
movzx ecx, word [ebx + 4]
xor ecx, 0x6b63
or ecx, eax
je 0x693d67
mov eax, 0x69726576
xor eax, dword [ebx]
movzx ecx, word [ebx + 4]
xor ecx, 0x7966
or ecx, eax
jne 0x6935e7
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
lea esi, [ebp - 0x10e4]
mov ecx, esi
call fcn.006951b0
test edi, edi
je 0x694588
push edi
push esi
call fcn.0046c610
add esp, 8
mov ebx, eax
jmp 0x694595
push 0xa
push str.decompress
push ebx
mov dword [ebp - 0x14], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [ebp - 0x14]
add esp, 0xc
test eax, eax
jne 0x69362c
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 1
mov dword [ebp - 0x18], esi
jne 0x693b1d
cmp byte [esi], 0x2d
jne 0x693b1d
xor edi, edi
mov al, 1
mov dword [ebp - 0x30], eax
jmp 0x693b33
cmp esi, 8
jae 0x69362c
cmp edi, 5
setae al
mov byte [ebp - 0x14], al
cmp esi, 3
je 0x693740
cmp esi, 7
je 0x693760
cmp esi, 4
jne 0x6948a6
cmp dword [ebx], 0x6f697063
jne 0x6948a6
add edi, 0xfffffffe
mov eax, dword [ebp - 0x10]
add eax, 8
push eax
push edi
call fcn.0046c550
jmp 0x693d5a
mov eax, 0x706d6f63
xor eax, dword [ebx]
mov ecx, 0x73736572
xor ecx, dword [ebx + 4]
or ecx, eax
je 0x693822
cmp edi, 5
setae al
jb 0x6935ed
cmp esi, 8
jne 0x6935ed
mov eax, 0x70786568
xor eax, dword [ebx]
mov ecx, 0x68637461
xor ecx, dword [ebx + 4]
or ecx, eax
jne 0x6948a6
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebx + 8]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
inc eax
mov esi, 1
mov ecx, edi
cmove ecx, esi
test edi, edi
cmovne ecx, edi
lea edx, [ebp - 0x50]
push eax
push ecx
push edx
call fcn.004a2260
add esp, 0xc
mov edi, dword [ebx + 0xc]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
inc eax
mov ecx, edi
cmove ecx, esi
test edi, edi
cmovne ecx, edi
lea edx, [ebp - 0x48]
push eax
push ecx
push edx
call fcn.004a2260
add esp, 0xc
mov edi, dword [ebx + 0x10]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
inc eax
cmovne esi, edi
test edi, edi
cmovne esi, edi
lea ecx, [ebp - 0x68]
push eax
push esi
push ecx
call fcn.004a2260
add esp, 0xc
movsd xmm0, qword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x10e0], esi
mov dword [ebp - 0x10e4], edx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xe4], eax
movsd qword [ebp - 0x28], xmm0
sub esp, 0x18
movsd xmm0, qword [ebp - 0x28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [ebp - 0xe4]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x10e4]
movsd qword [esp], xmm0
call fcn.00469500
add esp, 0x18
jmp 0x693d5d
movzx eax, word [ebx]
xor eax, 0x7464
movzx ecx, byte [ebx + 2]
xor ecx, 0x62
or cx, ax
je 0x693d4a
test dl, dl
je 0x6948a6
push esi
push str.extract
push ebx
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x6948a6
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 8]
xor ecx, ecx
cmp edi, 4
jb 0x693792
mov edx, dword [esi + 0xc]
cmp byte [ebp - 0x14], 0
je 0x693794
mov ecx, dword [esi + 0x10]
jmp 0x693794
xor edx, edx
push ecx
push edx
push eax
call fcn.00469a60
add esp, 0xc
jmp 0x693d5d
push 2
call dword [0x71401c]
add esp, 4
push str.Cleaning_up..._n
push eax
call fcn.00694a00
add esp, 8
push str.header
call sub.msvcrt.dll__unlink
add esp, 4
push str.kernel
call sub.msvcrt.dll__unlink
add esp, 4
push str.ramdisk.cpio
call sub.msvcrt.dll__unlink
add esp, 4
push str.second
call sub.msvcrt.dll__unlink
add esp, 4
push str.kernel_dtb
call sub.msvcrt.dll__unlink
add esp, 4
push str.extra
call sub.msvcrt.dll__unlink
add esp, 4
push str.recovery_dtbo
call sub.msvcrt.dll__unlink
add esp, 4
push 0x706872
jmp 0x6943f7
lea eax, [ebx + 9]
cmp byte [ebx + 8], 0x3d
mov esi, str.gzip
cmove esi, eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
add eax, 0xfffffffe
cmp eax, 8
ja case.0x69384f.7
jmp dword [eax*4 + 0x711a14]
movzx eax, word [esi]
cmp eax, 0x7a78
jne case.0x69384f.7
mov dword [ebp - 0x10], 8
jmp 0x6941a9
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
lea ecx, [ebp - 0x3c]
push 0
call fcn.0069aea0
add esp, 4
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov ecx, esi
or ecx, eax
mov ecx, 1
cmovne ecx, esi
lea edx, [ebp - 0x58]
push eax
push ecx
push edx
call fcn.004a2260
add esp, 0xc
lea eax, [ebp - 0x10e4]
lea ecx, [ebp - 0x70]
push 0x14
push eax
push ecx
call fcn.004a2260
add esp, 0xc
movsd xmm0, qword [ebp - 0x70]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xe4], eax
movsd qword [ebp - 0x28], xmm0
sub esp, 0x10
movsd xmm0, qword [ebp - 0x28]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0xe4]
movsd qword [esp], xmm0
call fcn.00469090
add esp, 0x10
test esi, esi
je 0x694698
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x694698
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x69468e
cmp eax, 0x2327
ja 0x693932
mov esi, dword [eax*4 + 0x708694]
test esi, esi
jne 0x694690
mov esi, 0xffffffff
jmp 0x694690
mov eax, 2
xor ebx, ebx
mov dword [ebp - 0x14], 0
jmp 0x693969
test esi, esi
jne 0x6948a6
nop word cs:[eax + eax]
inc eax
cmp eax, edi
je 0x6948a6
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + eax*4]
cmp byte [edx], 0x2d
jne 0x6939cc
mov ecx, dword [ebp - 0x14]
jmp 0x693987
mov cl, 1
cmp esi, 0x6e
jne 0x69394c
mov dword [ebp - 0x14], ecx
movzx esi, byte [edx + 1]
inc edx
cmp esi, 0x68
jne 0x693980
nop word cs:[eax + eax]
movzx ecx, byte [edx + 1]
inc edx
cmp ecx, 0x68
je 0x6939a0
cmp ecx, 0x6e
jne 0x6939c0
mov cl, 1
mov bl, 1
jmp 0x693987
test ecx, ecx
jne 0x6948a6
mov bl, 1
jmp 0x693960
lea ecx, [ebp - 0x10e4]
call fcn.006951b0
test bl, 1
je 0x693aa1
mov edi, dword [ebp - 0x10dc]
push 0x705761
push str.header
call fcn.00473f50
add esp, 8
mov ebx, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x38]
test eax, eax
je 0x693a1b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x38]
push eax
push str.name_s_n
push ebx
call fcn.00695190
add esp, 0xc
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
mov esi, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
push eax
push 0x400
push esi
push 0x200
push str.cmdline_.s_.s_n
push ebx
call fcn.00695190
add esp, 0x18
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edi, eax
test eax, eax
je 0x693a98
mov eax, edi
shr eax, 0xb
mov ecx, edi
shr ecx, 0x19
mov edx, edi
shr edx, 0x12
and edx, 0x7f
and eax, 0x7f
push eax
push edx
push ecx
push str.os_version_d._d._d_n
push ebx
call fcn.00695190
add esp, 0x14
mov eax, edi
shr eax, 4
and eax, 0x7f
add eax, 0x7d0
and edi, 0xf
push edi
push eax
push str.os_patch_level_d__02d_n
push ebx
call fcn.00695190
add esp, 0x10
push ebx
call sub.msvcrt.dll_fclose
add esp, 4
test byte [ebp - 0x14], 1
jne 0x693da4
mov eax, dword [ebp - 0x10d4]
cmp eax, 6
jl 0x693da4
cmp eax, 0xd
jg 0x693da4
mov ecx, dword [ebp - 0x10dc]
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x693de3
push 0x1a4
push str.kernel
call fcn.006ad8b0
add esp, 8
mov esi, eax
mov ecx, dword [ebp - 0x10dc]
mov edi, dword [ebp - 0x10d4]
mov ebx, dword [ebp - 0x1098]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, edi
mov edx, esi
push eax
push ebx
call fcn.00696f00
add esp, 8
push esi
call sub.msvcrt.dll__close
add esp, 4
jmp 0x693de3
mov dword [ebp - 0x30], 0
push 0
push 0
push esi
call fcn.00474260
add esp, 0xc
mov edi, eax
mov dword [ebp - 0x34], 0xffffffff
xor esi, esi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], edi
nop word cs:[eax + eax]
push 0x1000
lea eax, [ebp - 0x10e4]
push eax
push edi
call fcn.006ae46c
add esp, 0xc
mov ebx, eax
test eax, eax
je 0x693d0e
test esi, esi
jne 0x693ce4
lea ecx, [ebp - 0x10e4]
mov edx, ebx
call fcn.0069a780
mov dword [ebp - 0x10], eax
push 2
call dword [0x71401c]
add esp, 4
mov ecx, dword [ebp - 0x10]
mov edi, ecx
add edi, 0xfffffffa
cmp edi, 0xc
jae 0x693bbb
push dword [ecx*4 + 0x706888]
push str.Detected_format:___s__n
push eax
call fcn.0069a6f0
add esp, 0xc
cmp edi, 8
jae 0x693bce
jmp 0x693bdb
push 0x70687d
push str.Detected_format:___s__n
push eax
call fcn.0069a6f0
add esp, 0xc
push str.Input_file_is_not_a_supported_compressed_type__n
call fcn.0069b020
add esp, 4
mov esi, dword [ebp - 0x1c]
test esi, esi
setne al
cmove esi, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0
or al, byte [ebp - 0x30]
jne 0x693c60
push 0x2e
push dword [ebp - 0x18]
call sub.msvcrt.dll_strrchr
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x693c2b
mov eax, 0x70689e
cmp edi, 8
ja 0x693c1b
mov eax, dword [ebp - 0x10]
mov eax, dword [eax*4 + 0x7068b8]
push eax
push dword [ebp - 0x14]
call sub.msvcrt.dll_strcmp
add esp, 8
test eax, eax
je 0x693c38
push str.Input_file_is_not_a_supported_type__n
call fcn.0069b020
add esp, 4
mov eax, dword [ebp - 0x14]
mov byte [eax], 0
push 2
call dword [0x71401c]
add esp, 4
mov esi, dword [ebp - 0x18]
push esi
push str.Decompressing_to___s__n
push eax
call fcn.0069a6f0
add esp, 0xc
mov al, 1
mov dword [ebp - 0x2c], eax
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 1
jne 0x693c78
mov edi, 1
cmp byte [esi], 0x2d
je 0x693c8d
push 0x1a4
push 0x301
push esi
call fcn.00474260
add esp, 0xc
mov edi, eax
push 0xc
call fcn.0049b8b0
add esp, 4
mov dword [ebp - 0x1c], esi
mov dword [eax], 0x706c2c
mov dword [eax + 4], 0x706c48
mov dword [ebp - 0x34], edi
mov dword [eax + 8], edi
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0xe4]
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x28]
push eax
call fcn.0069a070
add esp, 4
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x28]
test ecx, ecx
mov edi, dword [ebp - 0x40]
je 0x693cda
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x693ce4
mov byte [eax], 0x2e
mov eax, dword [esi]
mov eax, dword [eax]
mov ecx, esi
push ebx
lea edx, [ebp - 0x10e4]
push edx
call eax
test al, al
jne 0x693b50
push str.Decompression_error__n
call fcn.0069b020
add esp, 4
jmp 0x693b50
test esi, esi
je 0x693d19
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
test edi, edi
je 0x693d26
push edi
call sub.msvcrt.dll__close
add esp, 4
mov eax, dword [ebp - 0x34]
cmp eax, 1
mov esi, dword [ebp - 0x18]
je 0x693d3a
push eax
call sub.msvcrt.dll__close
add esp, 4
test byte [ebp - 0x2c], 1
je 0x694849
push esi
jmp 0x6943f7
add edi, 0xfffffffe
mov eax, dword [ebp - 0x10]
add eax, 8
push eax
push edi
call fcn.0046c6d0
add esp, 8
xor al, 1
movzx esi, al
jmp 0x69484b
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebx + 8]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 2
jne 0x693d89
movzx eax, word [esi]
cmp eax, 0x6e2d
je 0x6945f5
mov eax, dword [ebx + 0xc]
test eax, eax
mov edx, str.new_boot.img
cmovne edx, eax
mov ecx, esi
push 0
call fcn.00696f90
jmp 0x694846
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x1098]
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, eax
test eax, eax
je 0x693de3
push 0x1a4
push str.kernel
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
mov edi, dword [ebp - 0x107c]
test edi, edi
je 0x693e1b
mov ebx, dword [ebp - 0x1080]
push 0x1a4
push str.kernel_dtb
call fcn.006ad8b0
add esp, 8
mov esi, eax
push edi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push esi
call sub.msvcrt.dll__close
add esp, 4
test byte [ebp - 0x14], 1
jne 0x693e88
mov eax, dword [ebp - 0x10d0]
cmp eax, 6
jl 0x693e88
cmp eax, 0xd
jg 0x693e88
mov ecx, dword [ebp - 0x10dc]
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
je 0x693ec7
push 0x1a4
push str.ramdisk.cpio
call fcn.006ad8b0
add esp, 8
mov esi, eax
mov ecx, dword [ebp - 0x10dc]
mov edi, dword [ebp - 0x10d0]
mov ebx, dword [ebp - 0x1094]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, edi
mov edx, esi
push eax
push ebx
call fcn.00696f00
add esp, 8
push esi
call sub.msvcrt.dll__close
add esp, 4
jmp 0x693ec7
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x1094]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov esi, eax
test eax, eax
je 0x693ec7
push 0x1a4
push str.ramdisk.cpio
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x1090]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov esi, eax
test eax, eax
je 0x693f06
push 0x1a4
push str.second
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
test byte [ebp - 0x14], 1
jne 0x693f73
mov eax, dword [ebp - 0x10cc]
cmp eax, 6
jl 0x693f73
cmp eax, 0xd
jg 0x693f73
mov ecx, dword [ebp - 0x10dc]
mov eax, dword [ecx]
call dword [eax + 0x28]
test eax, eax
je 0x693fb2
push 0x1a4
push str.extra
call fcn.006ad8b0
add esp, 8
mov esi, eax
mov ecx, dword [ebp - 0x10dc]
mov edi, dword [ebp - 0x10cc]
mov ebx, dword [ebp - 0x108c]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, edi
mov edx, esi
push eax
push ebx
call fcn.00696f00
add esp, 8
push esi
call sub.msvcrt.dll__close
add esp, 4
jmp 0x693fb2
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x108c]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov esi, eax
test eax, eax
je 0x693fb2
push 0x1a4
push str.extra
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x1088]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov esi, eax
test eax, eax
je 0x693ff1
push 0x1a4
push str.recovery_dtbo
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
mov ecx, dword [ebp - 0x10dc]
mov ebx, dword [ebp - 0x1084]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov esi, eax
test eax, eax
je 0x694030
push 0x1a4
push 0x706872
call fcn.006ad8b0
add esp, 8
mov edi, eax
push esi
push ebx
push eax
call fcn.004733e0
add esp, 0xc
push edi
call sub.msvcrt.dll__close
add esp, 4
mov ecx, dword [ebp - 0x10dc]
mov esi, dword [ebp - 0x10d8]
test ecx, ecx
je 0x694048
mov eax, dword [ecx]
call dword [eax + 0x84]
shr esi, 1
mov eax, dword [ebp - 0x10e4]
test eax, eax
je 0x694862
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x694862
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x694858
cmp eax, 0x2327
ja 0x69408b
mov edi, dword [eax*4 + 0x708694]
test edi, edi
jne 0x69485a
mov edi, 0xffffffff
jmp 0x69485a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], str._boot
jmp 0x694408
cmp edi, 3
je 0x69491b
mov ecx, dword [ebx + 0xc]
mov edx, 1
jmp 0x693505
movzx eax, word [esi]
xor eax, 0x7a6c
movzx ecx, byte [esi + 2]
xor ecx, 0x34
or cx, ax
jne case.0x69384f.7
mov dword [ebp - 0x10], 0xb
jmp 0x6941a9
cmp dword [esi], 0x70697a67
je 0x694867
cmp dword [esi], 0x616d7a6c
jne case.0x69384f.7
mov dword [ebp - 0x10], 9
jmp 0x6941a9
mov eax, 0x70697a62
xor eax, dword [esi]
movzx ecx, byte [esi + 4]
xor ecx, 0x32
or ecx, eax
jne case.0x69384f.7
mov dword [ebp - 0x10], 0xa
jmp 0x6941a9
mov eax, 0x66706f7a
xor eax, dword [esi]
movzx ecx, word [esi + 4]
xor ecx, 0x696c
or ecx, eax
je 0x694873
mov eax, dword [esi]
bswap eax
mov ecx, 0x6c7a345f
cmp eax, 0x6c7a345f
jne 0x694166
movzx eax, word [esi + 4]
rol ax, 8
movzx eax, ax
mov ecx, 0x6c67
xor edx, edx
cmp eax, 0x6c67
je 0x69416f
xor edx, edx
cmp eax, ecx
sbb edx, edx
or edx, 1
test edx, edx
jne case.0x69384f.7
mov dword [ebp - 0x10], 0xd
jmp 0x6941a9
push 0xa
push str.lz4_legacy
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x69487f
push esi
push str.Unknown_compression_method:___s__n
call fcn.0069b020
add esp, 8
mov dword [ebp - 0x10], 0
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 1
mov dword [ebp - 0x18], ebx
jne 0x6941c7
cmp byte [ebx], 0x2d
jne 0x6941c7
xor esi, esi
test edi, edi
jne 0x6941da
jmp 0x6941ed
push 0
push 0
push ebx
call fcn.00474260
add esp, 0xc
mov esi, eax
test edi, edi
je 0x69421f
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 1
jne 0x6941fe
cmp byte [edi], 0x2d
jne 0x6941fe
mov edi, 1
mov dword [ebp - 0x1c], 0
jmp 0x694335
mov dword [ebp - 0x1c], 0
push 0x1a4
push 0x301
push edi
call fcn.00474260
add esp, 0xc
mov edi, eax
jmp 0x694335
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x694910
mov ecx, eax
cmp eax, 0xb
jae 0x69424e
mov eax, ecx
add al, cl
mov byte [ebp - 0x10e4], al
lea edi, [ebp - 0x10e3]
test ecx, ecx
jne 0x69427d
jmp 0x69428c
mov ebx, ecx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
mov edi, ecx
call fcn.0049b8b0
mov ecx, edi
add esp, 4
mov edi, eax
mov dword [ebp - 0x10dc], eax
add ebx, 2
mov dword [ebp - 0x10e4], ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x10e0], ecx
push ecx
push ebx
push edi
mov ebx, ecx
call sub.msvcrt.dll_memcpy
mov ecx, ebx
add esp, 0xc
mov byte [edi + ecx], 0
mov eax, dword [ebp - 0x10]
add eax, 0xfffffffa
mov edi, 0x70689e
cmp eax, 8
ja 0x6942aa
mov eax, dword [ebp - 0x10]
mov edi, dword [eax*4 + 0x7068b8]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
lea ecx, [ebp - 0x10e4]
push eax
push edi
call fcn.0049c610
test byte [ebp - 0x10e4], 1
lea edi, [ebp - 0x10e3]
mov eax, edi
je 0x6942d7
mov eax, dword [ebp - 0x10dc]
push 0x1a4
push 0x301
push eax
call fcn.00474260
add esp, 0xc
mov dword [ebp - 0x14], eax
push 2
call dword [0x71401c]
add esp, 4
test byte [ebp - 0x10e4], 1
je 0x694307
mov edi, dword [ebp - 0x10dc]
push edi
push str.Compressing_to___s__n
push eax
call fcn.0069a6f0
add esp, 0xc
test byte [ebp - 0x10e4], 1
je 0x69432d
push dword [ebp - 0x10dc]
call fcn.0049b920
add esp, 4
mov al, 1
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp - 0x14]
push 0xc
call fcn.0049b8b0
add esp, 4
mov dword [eax], 0x706c2c
mov dword [eax + 4], 0x706c48
mov dword [ebp - 0x14], edi
mov dword [eax + 8], edi
mov dword [ebp - 0x10e4], eax
lea ebx, [ebp - 0x10e4]
lea ecx, [ebp - 0xe4]
mov edx, dword [ebp - 0x10]
push ebx
call fcn.00698c00
add esp, 4
mov ecx, dword [ebp - 0x10e4]
test ecx, ecx
je 0x69437f
mov eax, dword [ecx]
call dword [eax + 8]
mov edi, dword [ebp - 0xe4]
nop word cs:[eax + eax]
push 0x1000
push ebx
push esi
call fcn.006ae46c
add esp, 0xc
test eax, eax
je 0x6943c0
mov ecx, dword [edi]
mov edx, dword [ecx]
mov ecx, edi
push eax
push ebx
call edx
test al, al
jne 0x694390
push str.Compression_error__n
call fcn.0069b020
add esp, 4
jmp 0x694390
test edi, edi
je 0x6943cb
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
test esi, esi
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
je 0x6943de
push esi
call sub.msvcrt.dll__close
add esp, 4
cmp ebx, 1
je 0x6943ec
push ebx
call sub.msvcrt.dll__close
add esp, 4
cmp byte [ebp - 0x1c], 0
je 0x694849
push edi
call sub.msvcrt.dll__unlink
jmp 0x694846
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0xe4]
mov edi, edx
call fcn.006951b0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
mov edx, eax
or edx, ecx
mov esi, 1
cmove eax, esi
lea edx, [ebp - 0x60]
push ecx
push eax
push edx
call fcn.004a2260
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
sub esp, 0x18
movsd xmm0, qword [ebp - 0x3c]
movsd qword [esp], xmm0
lea ebx, [ebp - 0x10e4]
mov dword [esp + 0x14], ebx
mov eax, dword [ebp - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
call fcn.0046c660
add esp, 0x18
mov eax, dword [ebp - 0x10dc]
mov dword [ebp - 0x20], eax
movsd xmm0, qword [ebp - 0x10e4]
movsd qword [ebp - 0x28], xmm0
push ebx
call fcn.004a3a50
add esp, 4
lea eax, [ebp - 0x28]
push eax
call fcn.004a3a90
add esp, 4
test eax, eax
je 0x694625
mov ebx, dword [ebp - 0xc0]
sub ebx, dword [ebp - 0xe4]
push 0
push 0x81
push edi
call fcn.00474260
add esp, 0xc
mov edi, eax
push 0
push ebx
push eax
call sub.msvcrt.dll__lseek
add esp, 0xc
cmp eax, ebx
jne 0x69457a
lea eax, [ebp - 0x28]
push eax
call fcn.004a3ab0
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x28]
push eax
call fcn.004a3a90
add esp, 4
push eax
push ebx
push edi
call fcn.004733e0
add esp, 0xc
mov ebx, eax
lea eax, [ebp - 0x28]
push eax
call fcn.004a3a90
add esp, 4
cmp ebx, eax
jne 0x69457a
push 1
push 0
push edi
call sub.msvcrt.dll__lseek
add esp, 0xc
mov esi, eax
mov ebx, dword [ebp - 0xe0]
cmp ebx, eax
jbe 0x69461a
push 0x1000
push 0
lea eax, [ebp - 0x10e4]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
sub ebx, esi
je 0x69461a
cmp ebx, 0x1000
mov esi, 0x1000
cmovb esi, ebx
push esi
lea eax, [ebp - 0x10e4]
push eax
push edi
call fcn.006ae47e
add esp, 0xc
jmp 0x694551
push edi
call sub.msvcrt.dll__close
add esp, 4
jmp 0x694625
movzx ebx, byte [ebp - 0x10d7]
and bl, 8
shr bl, 3
mov ecx, dword [ebp - 0x10dc]
test ecx, ecx
je 0x6945a7
mov eax, dword [ecx]
call dword [eax + 0x84]
xor bl, 1
mov eax, dword [ebp - 0x10e4]
test eax, eax
je 0x6948a1
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x6948a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x694897
cmp eax, 0x2327
ja 0x6945eb
mov esi, dword [eax*4 + 0x708694]
test esi, esi
jne 0x694899
mov esi, 0xffffffff
jmp 0x694899
cmp edi, 3
je 0x69491b
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
test eax, eax
mov edx, str.new_boot.img
cmovne edx, eax
push 1
call fcn.00696f90
jmp 0x694846
xor esi, esi
push edi
call sub.msvcrt.dll__close
add esp, 4
lea eax, [ebp - 0x28]
push eax
call fcn.004a3a70
add esp, 4
mov ecx, dword [ebp - 0xdc]
test ecx, ecx
je 0x694643
mov eax, dword [ecx]
call dword [eax + 0x84]
mov eax, dword [ebp - 0xe4]
test eax, eax
je 0x69484b
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x69484b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x69488b
cmp eax, 0x2327
ja 0x694684
mov edi, dword [eax*4 + 0x708694]
test edi, edi
jne 0x69488d
mov edi, 0xffffffff
jmp 0x69488d
xor esi, esi
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], esi
movzx eax, byte [ebp - 0x10e4]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10e3]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10e2]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10e1]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10e0]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10df]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10de]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10dd]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10dc]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10db]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10da]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d9]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d8]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d7]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d6]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d5]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d4]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d3]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d2]
push eax
push str._02x
call fcn.00694b00
add esp, 8
movzx eax, byte [ebp - 0x10d1]
push eax
push str._02x
call fcn.00694b00
add esp, 8
push 0x704705
call fcn.00694b00
add esp, 4
xor esi, esi
mov eax, esi
add esp, 0x10d8
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], edi
and esi, 2
jmp 0x69484b
mov dword [ebp - 0x10], 6
jmp 0x6941a9
mov dword [ebp - 0x10], 7
jmp 0x6941a9
mov dword [ebp - 0x10], 0xc
jmp 0x6941a9
xor edi, edi
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], edi
jmp 0x69484b
xor esi, esi
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], esi
movzx esi, bl
jmp 0x69484b
mov eax, dword [ebp - 0x10]
mov edi, dword [eax]
mov esi, dword [fcn.004a11a0]
push 2
call esi
add esp, 4
push edi
push str.MagiskBoot___Boot_Image_Modification_Tool_n_nUsage:__s__action___args...__n_nSupported_actions:_n__unpack___n____h___bootimg__n____Unpack__bootimg__to_its_individual_components__each_component_to_n____a_file_with_its_corresponding_file_name_in_the_current_directory._n____Supported_components:_kernel__kernel_dtb__ramdisk.cpio__second__n____dtb__extra__and_recovery_dtbo._n____By_default__each_component_will_be_decompressed_on_the_fly._n____If__n_is_provided__all_decompression_operations_will_be_skipped__n____each_component_will_remain_untouched__dumped_in_its_original_format._n____If__h_is_provided__the_boot_image_header_information_will_be_n____dumped_to_the_file_header__which_can_be_used_to_modify_header_n____configurations_during_repacking._n____Return_values:_n____0:valid____1:error____2:chromeos_n_n__repack___n___origbootimg___outbootimg__n____Repack_boot_image_components_using_files_from_the_current_directory_n____to__outbootimg___or_new_boot.img_if_not_specified._n_____origbootimg__is_the_original_boot_image_used_to_unpack_the_components._n____By_default__each_component_will_be_automatically_compressed_using_its_n____corresponding_format_detected_in__origbootimg_._If_a_component_file_n____in_the_current_directory_is_already_compressed__then_no_addition_n____compression_will_be_performed_for_that_specific_component._n____If__n_is_provided__all_compression_operations_will_be_skipped._n____If_env_variable_PATCHVBMETAFLAG_is_set_to_true__all_disable_flags_in_n____the_boot_images_vbmeta_header_will_be_set._n_n__verify__bootimg___x509.pem__n____Check_whether_the_boot_image_is_signed_with_AVB_1.0_signature._n____Optionally_provide_a_certificate_to_verify_whether_the_image_is_n____signed_by_the_public_key_certificate._n____Return_value:_n____0:valid____1:error_n_n__sign__bootimg___name___x509.pem_pk8__n____Sign__bootimg__with_AVB_1.0_signature._n____Optionally_provide_the_name_of_the_image__default:__boot_._n____Optionally_provide_the_certificate_private_key_pair_for_signing._n____If_the_certificate_private_key_pair_is_not_provided__the_AOSP_n____verity_key_bundled_in_the_executable_will_be_used._n_n__extract__payload.bin___partition___outfile__n____Extract__partition__from__payload.bin__to__outfile_._n____If__outfile__is_not_specified__then_output_to__partition_.img._n____If__partition__is_not_specified__then_attempt_to_extract_either_n____init_boot_or_boot._Which_partition_was_chosen_can_be_determined_n____by_whichever_init_boot.img_or_boot.img_exists._n_____payload.bin__can_be___to_be_STDIN._n_n__hexpatch__file___hexpattern1___hexpattern2__n____Search__hexpattern1__in__file___and_replace_it_with__hexpattern2__n_n__cpio__incpio___commands...__n____Do_cpio_commands_to__incpio___modifications_are_done_in_place_._n____Each_command_is_a_single_argument__add_quotes_for_each_command._n____See__cpio___help__for_supported_commands._n_n__dtb__file___action___args...__n____Do_dtb_related_actions_to__file_._n____See__dtb___help__for_supported_actions._n_n__split___n___file__n____Split_image._dtb_into_kernel__kernel_dtb._n____If__n_is_provided__decompression_operations_will_be_skipped__n____the_kernel_will_remain_untouched__split_in_its_original_format._n_n__sha1__file__n____Print_the_SHA1_checksum_for__file__n_n__cleanup_n____Cleanup_the_current_working_directory_n_n__compress_format___infile___outfile__n____Compress__infile__with__format__to__outfile_._n_____infile___outfile__can_be___to_be_STDIN_STDOUT._n____If__format__is_not_specified__then_gzip_will_be_used._n____If__outfile__is_not_specified__then__infile__will_be_replaced_n____with_another_file_suffixed_with_a_matching_file_extension._n____Supported_formats:
push eax
call fcn.00694a00
add esp, 0xc
call fcn.00694a20
push 2
call esi
add esp, 4
push str._n_n__decompress__infile___outfile__n____Detect_format_and_decompress__infile__to__outfile_._n_____infile___outfile__can_be___to_be_STDIN_STDOUT._n____If__outfile__is_not_specified__then__infile__will_be_replaced_n____with_another_file_removing_its_archive_format_file_extension._n____Supported_formats:
push eax
call fcn.00694a00
add esp, 8
call fcn.00694a20
push 2
call esi
add esp, 4
push 0x705679
push eax
call fcn.00694a00
add esp, 8
push 1
call sub.msvcrt.dll_exit
mov edi, dword [esi]
jmp 0x6948ab
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call fcn.00694b30
lea ecx, [ebp - 0x10e4]
call fcn.0069a710
mov ecx, dword [ebx]
call fcn.00694b30
jmp 0x69495f
mov ebx, eax
lea eax, [ebp - 0x28]
push eax
call fcn.004a3a70
add esp, 4
mov ecx, dword [ebp - 0xdc]
test ecx, ecx
je 0x69497f
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [ebp - 0xe4]
jmp 0x6949ba
call fcn.0069af30
push ebx
call fcn.0050ffb0
push eax
call fcn.0050ffb0
mov ebx, eax
test esi, esi
jne 0x6949dd
jmp 0x6949ec
mov eax, dword [esi]
mov ecx, esi
jmp 0x6949e9
call dword [eax + 8]
push ebx
call fcn.0050ffb0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp + 0x10], edx
mov edx, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], edx
push 0
call fcn.0069aea0
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov dword [esp + 0xc], ecx
test ecx, ecx
jle 0x696d9b
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
add ecx, eax
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov edi, dword [esp + 8]
sub edi, dword [esp + 4]
js 0x696d9b
cmp dword [esp + 4], 0
je 0x696d9b
mov eax, dword [esp + 4]
cmp dword [esp + 8], eax
je 0x696d9b
xor ebp, ebp
nop
mov eax, edi
sub eax, ebp
add eax, 0xfffffffc
js 0x696d9b
mov ecx, dword [esp + 4]
lea esi, [ecx + ebp]
inc eax
push eax
push 0xd0
push esi
call sub.msvcrt.dll_memchr
add esp, 0xc
test eax, eax
je 0x696d9b
mov ebx, eax
cmp dword [eax], 0xedfe0dd0
je 0x696d69
sub ebp, esi
add ebp, ebx
inc ebp
cmp ebp, edi
jle 0x696d30
jmp 0x696d9b
mov ecx, dword [ebx + 4]
bswap ecx
mov eax, dword [esp + 8]
sub eax, ebx
cmp ecx, eax
ja 0x696d8a
mov ecx, dword [ebx + 8]
bswap ecx
cmp ecx, eax
ja 0x696d8a
cmp dword [ebx + ecx], 0x1000000
je 0x696e06
add ebx, 0x28
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 8]
jb 0x696d09
push 2
call dword [0x71401c]
add esp, 4
push dword [esp + 0x14]
push str.Cannot_find_DTB_in__s_n
push eax
call fcn.00695190
add esp, 0xc
mov ebp, 1
mov esi, dword [esp]
test esi, esi
je 0x696dfc
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x696dfc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x696df2
cmp eax, 0x2327
ja 0x696deb
mov esi, dword [eax*4 + 0x708694]
test esi, esi
jne 0x696df4
mov esi, 0xffffffff
jmp 0x696df4
xor esi, esi
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], esi
mov eax, ebp
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
sub ebx, dword [esp]
test ebx, ebx
jle 0x696d9b
mov esi, dword [esp]
mov ecx, esi
mov edi, dword [esp + 0xc]
mov edx, edi
call fcn.0069a780
mov ebp, eax
cmp eax, 0xc
jne 0x696e45
mov eax, 4
lea ecx, [eax + 4]
cmp ecx, edi
ja 0x696e40
add ecx, dword [esi + eax]
mov eax, ecx
cmp ecx, edi
jbe 0x696e29
mov ebp, 0xd
jmp 0x696e45
mov ebp, 0xc
lea eax, [ebp - 0xe]
cmp eax, 0xfffffff8
jb 0x696e83
cmp byte [esp + 0x10], 0
jne 0x696e83
push 0x1a4
push str.kernel
call fcn.006ad8b0
add esp, 8
mov ecx, ebp
mov edx, eax
push ebx
push esi
mov ebp, eax
call fcn.00696f00
mov eax, ebp
add esp, 8
push eax
call sub.msvcrt.dll__close
add esp, 4
jmp 0x696eab
push 0x1a4
push str.kernel
call fcn.006ad8b0
add esp, 8
mov ebp, eax
push ebx
push esi
push eax
call fcn.004733e0
add esp, 0xc
push ebp
call sub.msvcrt.dll__close
add esp, 4
xor ebp, ebp
sub edi, ebx
je 0x696dc0
push 0x1a4
push str.kernel_dtb
call fcn.006ad8b0
add esp, 8
add ebx, esi
push edi
push ebx
push eax
mov edi, eax
call fcn.004733e0
mov eax, edi
add esp, 0xc
push eax
call sub.msvcrt.dll__close
add esp, 4
jmp 0x696dc0