Function at 0x429b50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test edi, edi
mov dword [ebp - 0x10], eax
je 0x429b6c
cmp byte [edi + 0x5c], 0x72
je 0x429b80
mov ebx, 0xfffffffe
add esp, 0x1c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [edi + 0x38]
mov ebx, 0xffffffff
cmp ecx, 0xfffffffd
sete dl
cmp ecx, 0xffffffff
sete al
or dl, al
jne 0x429b71
xor ebx, ebx
dec ecx
je 0x429b71
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
test ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], edx
jne 0x429bf0
jmp 0x429e33
mov dword [esp], edi
xor eax, eax
mov dword [esp + 4], eax
call fcn.00430cf0
mov dword [edi + 0x38], eax
cmp eax, 1
je 0x429c70
test eax, eax
jne 0x429e30
mov edx, dword [edi + 0x3c]
test edx, edx
jne 0x429e30
mov edx, dword [edi + 0x10]
test edx, edx
je 0x429e30
mov ebx, dword [edi + 0x58]
test ebx, ebx
jne 0x42a143
mov edx, dword [edi + 4]
test edx, edx
jne 0x429bb8
mov ecx, dword [edi + 0x3c]
test ecx, ecx
jne 0x429bb8
mov edx, dword [edi + 0x40]
mov eax, 0x4000
mov esi, 1
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 4], esi
mov dword [esp + 0xc], edx
mov ebx, dword [edi + 0x44]
mov dword [0x63ebc0], ecx
mov dword [esp], ebx
call sub.msvcrt.dll_fread
mov dword [edi + 4], eax
test eax, eax
jne 0x429c50
mov dword [edi + 0x3c], 1
mov ebx, dword [edi + 0x40]
test byte [ebx + 0xc], 0x20
jne 0x429e1c
mov esi, dword [edi + 0x44]
xor eax, eax
mov dword [edi], esi
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00430cf0
mov dword [edi + 0x38], eax
cmp eax, 1
jne 0x429bd2
nop
mov esi, dword [edi + 0xc]
mov eax, dword [ebp - 0x10]
sub esi, eax
mov dword [esp + 8], esi
mov ebx, dword [ebp - 0x10]
mov esi, 0xffffffff
mov dword [esp + 4], ebx
mov ecx, dword [edi + 0x4c]
mov dword [esp], ecx
call fcn.0042a7f0
mov dword [edi + 0x4c], eax
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0xc]
test ecx, ecx
mov dword [ebp - 0x10], edx
jne 0x429cbc
mov eax, dword [edi + 4]
test eax, eax
je 0x429f7d
mov edx, dword [edi]
dec eax
lea ebx, [edx + 1]
mov dword [edi + 4], eax
movzx esi, byte [edx]
mov dword [edi], ebx
test ecx, ecx
mov ebx, 0xffffffff
jne 0x429cde
mov eax, dword [edi + 4]
test eax, eax
je 0x429f1e
mov edx, dword [edi]
dec eax
mov dword [edi + 4], eax
lea eax, [edx + 1]
movzx ebx, byte [edx]
mov dword [edi], eax
shl ebx, 8
add esi, ebx
test ecx, ecx
mov ebx, 0xffffffff
jne 0x429d05
mov eax, dword [edi + 4]
test eax, eax
je 0x429ebf
mov edx, dword [edi]
dec eax
mov dword [edi + 4], eax
lea eax, [edx + 1]
movzx ebx, byte [edx]
mov dword [edi], eax
shl ebx, 0x10
add esi, ebx
test ecx, ecx
mov ebx, 0xffffffff
jne 0x429d40
mov eax, dword [edi + 4]
test eax, eax
je 0x429e63
mov edx, dword [edi]
dec eax
mov dword [edi + 4], eax
lea eax, [edx + 1]
movzx ebx, byte [edx]
mov dword [edi], eax
cmp ebx, 0xffffffff
jne 0x429d47
jmp 0x429d40
mov dword [edi + 0x38], 0xfffffffd
shl ebx, 0x18
lea ecx, [esi + ebx]
cmp ecx, dword [edi + 0x4c]
jne 0x42a236
mov edx, dword [edi + 0x3c]
test edx, edx
jne 0x429dd0
mov eax, dword [edi + 4]
test eax, eax
je 0x42a08f
mov ecx, dword [edi]
dec eax
lea ebx, [ecx + 1]
mov dword [edi + 4], eax
mov dword [edi], ebx
test edx, edx
jne 0x429dd0
mov eax, dword [edi + 4]
test eax, eax
je 0x42a0e9
mov ecx, dword [edi]
dec eax
mov dword [edi + 4], eax
lea eax, [ecx + 1]
mov dword [edi], eax
test edx, edx
jne 0x429dd0
mov eax, dword [edi + 4]
test eax, eax
je 0x42a036
mov ecx, dword [edi]
dec eax
lea esi, [ecx + 1]
mov dword [edi + 4], eax
mov dword [edi], esi
test edx, edx
jne 0x429dd0
mov eax, dword [edi + 4]
test eax, eax
je 0x429fdb
mov ecx, dword [edi]
dec eax
mov dword [edi + 4], eax
lea eax, [ecx + 1]
movzx edx, byte [ecx]
mov dword [edi], eax
inc edx
jne 0x429dd7
mov esi, esi
lea edi, [edi]
mov dword [edi + 0x38], 0xfffffffd
mov eax, edi
call fcn.00429100
mov ecx, dword [edi + 0x38]
test ecx, ecx
jne 0x429e30
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0x14]
mov dword [esp], edi
call fcn.00430a00
mov dword [edi + 8], ebx
xor ebx, ebx
mov dword [edi + 0x14], esi
xor esi, esi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0042a7f0
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x38]
jmp 0x429bd2
mov dword [edi + 0x38], 0xffffffff
lea esi, [esi]
lea edi, [edi]
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0x10]
sub eax, ebx
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x10]
mov dword [esp + 4], esi
mov ecx, dword [edi + 0x4c]
mov dword [esp], ecx
call fcn.0042a7f0
mov dword [edi + 0x4c], eax
mov ebx, dword [ebp + 0x10]
mov eax, dword [edi + 0x10]
add esp, 0x1c
sub ebx, eax
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 0x40]
mov edx, 1
mov ebx, 0x4000
mov dword [esp + 8], ebx
xor ecx, ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov dword [0x63ebc0], ecx
mov ecx, dword [edi + 0x44]
mov dword [esp], ecx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a19d
mov dword [edi + 4], 0
mov edx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [edx + 0xc], 0x20
je 0x429eb5
mov dword [edi + 0x38], 0xffffffff
mov ebx, 0xffffffff
jmp 0x429d40
mov eax, dword [edi + 0x40]
mov ecx, 0x4000
mov ebx, 1
mov dword [esp + 8], ecx
xor edx, edx
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov dword [0x63ebc0], edx
mov edx, dword [edi + 0x44]
mov dword [esp], edx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a190
mov dword [edi + 4], 0
mov ebx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [ebx + 0xc], 0x20
je 0x429f11
mov dword [edi + 0x38], 0xffffffff
mov ecx, dword [edi + 0x3c]
mov ebx, 0xffffffff
jmp 0x429d05
mov ebx, dword [edi + 0x40]
mov edx, 0x4000
mov eax, 1
mov dword [esp + 8], edx
xor ecx, ecx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ebx
mov dword [0x63ebc0], ecx
mov ecx, dword [edi + 0x44]
mov dword [esp], ecx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a183
mov dword [edi + 4], 0
mov eax, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [eax + 0xc], 0x20
je 0x429f70
mov dword [edi + 0x38], 0xffffffff
mov ecx, dword [edi + 0x3c]
mov ebx, 0xffffffff
jmp 0x429cde
mov esi, dword [edi + 0x40]
mov ecx, 1
mov ebx, 0x4000
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], ecx
mov dword [esp + 0xc], esi
mov edx, dword [edi + 0x44]
mov dword [0x63ebc0], eax
mov dword [esp], edx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a176
mov dword [edi + 4], 0
mov edx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [edx + 0xc], 0x20
je 0x429fce
mov dword [edi + 0x38], 0xffffffff
mov ecx, dword [edi + 0x3c]
mov esi, 0xffffffff
jmp 0x429cbc
mov ecx, dword [edi + 0x40]
mov eax, 0x4000
mov edx, 1
mov dword [esp + 8], eax
xor esi, esi
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [edi + 0x44]
mov dword [0x63ebc0], esi
mov dword [esp], ebx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a1c1
mov dword [edi + 4], 0
mov ebx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [ebx + 0xc], 0x20
je 0x429dd0
mov dword [edi + 0x38], 0xffffffff
jmp 0x429dd0
mov edx, dword [edi + 0x40]
mov ebx, 0x4000
mov esi, 1
mov dword [esp + 8], ebx
xor eax, eax
mov dword [esp + 4], esi
mov dword [esp + 0xc], edx
mov ecx, dword [edi + 0x44]
mov dword [0x63ebc0], eax
mov dword [esp], ecx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a1a7
mov dword [edi + 4], 0
mov ecx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [ecx + 0xc], 0x20
je 0x42a087
mov dword [edi + 0x38], 0xffffffff
mov edx, dword [edi + 0x3c]
jmp 0x429da7
mov eax, dword [edi + 0x40]
mov edx, 0x4000
mov ebx, 1
mov dword [esp + 8], edx
xor ecx, ecx
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov esi, dword [edi + 0x44]
mov dword [0x63ebc0], ecx
mov dword [esp], esi
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a1cb
mov dword [edi + 4], 0
mov esi, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [esi + 0xc], 0x20
je 0x42a0e1
mov dword [edi + 0x38], 0xffffffff
mov edx, dword [edi + 0x3c]
jmp 0x429d73
mov esi, dword [edi + 0x40]
mov ecx, 0x4000
mov eax, 1
mov dword [esp + 8], ecx
xor ebx, ebx
mov dword [esp + 4], eax
mov dword [esp + 0xc], esi
mov edx, dword [edi + 0x44]
mov dword [0x63ebc0], ebx
mov dword [esp], edx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x42a1b4
mov dword [edi + 4], 0
mov edx, dword [edi + 0x40]
mov dword [edi + 0x3c], 1
test byte [edx + 0xc], 0x20
je 0x42a13b
mov dword [edi + 0x38], 0xffffffff
mov edx, dword [edi + 0x3c]
jmp 0x429d8d
mov esi, dword [edi + 4]
mov ebx, edx
cmp edx, esi
cmovae ebx, esi
test ebx, ebx
jne 0x42a204
test edx, edx
jne 0x42a1d8
mov eax, dword [ebp + 0x10]
sub eax, edx
add dword [edi + 8], eax
add dword [edi + 0x14], eax
test eax, eax
jne 0x42a16f
mov dword [edi + 0x3c], 1
mov ebx, eax
jmp 0x429b71
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x3c]
mov dword [edi], edx
jmp 0x429cb0
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x3c]
mov dword [edi], edx
jmp 0x429cd2
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x3c]
mov dword [edi], edx
jmp 0x429cf9
mov edx, dword [edi + 0x44]
mov dword [edi], edx
jmp 0x429d20
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x3c]
mov dword [edi], ecx
jmp 0x429d9e
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x3c]
mov dword [edi], ecx
jmp 0x429d84
mov ecx, dword [edi + 0x44]
mov dword [edi], ecx
jmp 0x429db8
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x3c]
mov dword [edi], ecx
jmp 0x429d6a
mov eax, dword [edi + 0x40]
mov esi, 1
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov ebx, dword [ebp - 0x14]
mov dword [esp], ebx
call sub.msvcrt.dll_fread
mov edx, dword [edi + 0x10]
sub edx, eax
mov dword [edi + 0x10], edx
jmp 0x42a159
mov edx, dword [edi + 0xc]
mov ecx, dword [edi]
mov dword [esp + 8], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
add dword [edi], ebx
mov edx, dword [edi + 0x10]
mov eax, dword [ebp + 0xc]
sub dword [edi + 4], ebx
sub edx, ebx
add eax, ebx
mov dword [ebp - 0x14], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], edx
jmp 0x42a155
mov dword [edi + 0x38], 0xfffffffd
jmp 0x429e30