Function at 0x428a90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
cmp byte [ecx + 0x30], 0
je 0x428aa7
mov eax, dword [ecx + 0x2c]
jmp 0x428fe8
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov edx, esi
sub edx, eax
je 0x428e21
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], ecx
mov ebx, 2
mov dword [ebp - 0x14], eax
lea edi, [eax + 4]
push dword [edi - 4]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
add esi, ebx
mov ebx, dword [ebp - 0x20]
cmp ebx, edi
je 0x428ae9
inc esi
add edi, 4
mov ebx, esi
jmp 0x428acb
push esi
call fcn.00450591
add esp, 4
mov edi, eax
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x3c], edi
mov esi, edi
mov edi, dword [ebp - 0x14]
push dword [edi]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add esp, 8
push dword [edi]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
add esi, eax
inc esi
add edi, 4
cmp ebx, edi
jne 0x428b08
mov edi, dword [ebp - 0x24]
mov ebx, edi
sar ebx, 2
mov ecx, 4
mov eax, ebx
mul ecx
seto cl
xor edx, edx
dec edx
add eax, 4
cmovb eax, edx
mov byte [esi], 0
test cl, cl
cmovne eax, edx
push eax
call fcn.00450591
mov edx, edi
add esp, 4
mov edi, eax
mov dword [ebp - 0x28], ebx
mov dword [eax], ebx
lea esi, [eax + 4]
test edx, edx
mov ebx, dword [ebp - 0x2c]
je 0x428b95
mov eax, 0xffffffff
cmovns eax, edx
xor ecx, ecx
inc ecx
test eax, eax
cmovle ecx, eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x20]
cmp eax, edx
cmovle eax, edx
and eax, 0xfffffffc
imul eax, ecx
push eax
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x20], esi
mov eax, dword [ebx + 4]
mov dword [ebp - 0x24], eax
push 0x4900d6
push dword [ebx]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
add esp, 8
test eax, eax
je 0x428e36
mov esi, eax
push 2
push 0
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
mov dword [ebp - 0x14], 6
test eax, eax
mov dword [ebp - 0x34], edi
jne 0x428e59
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
add esp, 4
test eax, eax
jle 0x428e59
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00450591
add esp, 4
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push eax
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x428e4e
push esi
mov eax, dword [ebp - 0x1c]
push eax
push 1
push dword [ebp - 0x10]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
cmp eax, dword [ebp - 0x1c]
jne 0x428e4e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov byte [ecx + eax], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov edi, ecx
mov dword [ebp - 0x18], esi
lea esi, [edi + 1]
lea ecx, [edi + 2]
lea eax, [edi + 3]
mov ebx, edi
mov dl, byte [ebx]
cmp dl, 0xa
je 0x428c60
cmp dl, 0xd
jne 0x428c66
inc ebx
inc esi
inc ecx
inc eax
jmp 0x428c54
mov edi, esi
mov dh, dl
test dl, dl
je 0x428ff0
cmp dh, 0xd
je 0x428c87
cmp dh, 0xa
je 0x428c87
mov dh, byte [edi]
inc edi
test dh, dh
jne 0x428c72
xor edi, edi
jmp 0x428c8d
mov byte [edi - 1], 0
mov dl, byte [ebx]
cmp dl, 0x23
je 0x428d6a
cmp dl, 0x3b
je 0x428d6a
jmp 0x428cab
cmp dl, 0x20
jne 0x428cbf
mov dl, byte [esi]
inc esi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x428ca1
cmp dl, 9
je 0x428ca6
test dl, dl
je 0x428d6a
jmp 0x428cd2
cmp dl, 0x5b
jne 0x428cd2
mov edx, esi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x428cee
inc edx
inc ecx
inc eax
jmp 0x428cc6
test byte [ebp - 0x1c], 1
je 0x428d6a
lea eax, [esi - 1]
mov dword [ebp - 0x38], eax
cmp dl, 0x3d
jne 0x428d0c
mov dl, byte [eax + 1]
inc eax
inc esi
jmp 0x428ce2
test bl, bl
jne 0x428cfb
mov dword [ebp - 0x1c], 0
jmp 0x428d6a
cmp bl, 0x5d
je 0x428d20
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x428cfb
jmp 0x428d37
test dl, dl
je 0x428d6a
cmp dl, 0x3d
je 0x428d7d
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x428d10
xor esi, esi
jmp 0x428d81
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x428d2f
cmp dl, 0x20
jne 0x428d33
inc ecx
inc eax
jmp 0x428d23
test dl, dl
jne 0x428d41
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x428d54
push eax
jmp 0x428d59
cmp dl, 0x20
je 0x428db6
cmp dl, 9
je 0x428db6
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x428d41
jmp 0x428cf2
push 0x48d86c
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
sete al
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
test edi, edi
jne 0x428c49
jmp 0x428ff6
mov byte [esi - 1], 0
mov ebx, dword [ebp - 0x3c]
cmp byte [ebx], 0
je 0x428d6a
mov dword [ebp - 0x30], 0
push ebx
push dword [ebp - 0x38]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x428dbf
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
add ebx, eax
inc ebx
inc dword [ebp - 0x30]
cmp byte [ebx], 0
jne 0x428d90
jmp 0x428d6a
mov byte [eax - 1], 0
jmp 0x428cf2
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x28]
jae 0x428d6a
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
inc eax
mov dword [ebp - 0x38], eax
push eax
call fcn.00450591
add esp, 4
mov ebx, eax
push dword [ebp - 0x38]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov eax, dword [ecx + edx*4]
mov dword [ecx + edx*4], ebx
test eax, eax
je 0x428e0f
push eax
call fcn.0044fc0e
add esp, 4
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [eax + ecx*4]
push esi
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add esp, 8
inc dword [ebp - 0x14]
jmp 0x428d6a
mov dword [ecx + 0x30], 1
mov dword [ecx + 0x2c], 0
xor eax, eax
jmp 0x428fe8
mov dword [ebx + 0x30], 1
mov dword [ebx + 0x2c], 6
mov edx, 6
jmp 0x428fab
push dword [ebp - 0x10]
call fcn.0044fc0e
add esp, 4
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov edx, dword [ebp - 0x14]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], 1
test edx, edx
mov ecx, dword [ebp - 0x20]
jne 0x428fab
mov eax, ebx
mov ebx, dword [ebx + 0x14]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
cmp ebx, eax
je 0x428eec
mov eax, dword [ebx]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x428ee4
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
inc edi
push edi
call fcn.00450591
add esp, 4
mov esi, eax
push edi
mov edi, dword [ebp - 0x24]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi]
mov dword [edi], esi
test eax, eax
je 0x428ed5
push eax
call fcn.0044fc0e
add esp, 4
mov esi, dword [edi]
push dword [ebp - 0x14]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add esp, 8
mov ecx, dword [ebp - 0x20]
add ebx, 8
cmp dword [ebp - 0x28], ebx
jne 0x428e8a
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x10], eax
cmp esi, eax
je 0x428fa6
mov ebx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
xor edx, edx
mov edi, dword [ebp - 0x34]
mov eax, dword [esi]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x428f98
mov dword [ebp - 0x14], edx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2c], ecx
xor edx, edx
push edx
push edx
xor edi, edi
dec edi
push edi
mov dword [ebp - 0x24], eax
push eax
push edx
push 0xfde9
call ebx
mov ebx, eax
mov dword [ebp - 0x28], eax
add ebx, eax
cmovb ebx, edi
push ebx
call fcn.00450591
add esp, 4
mov edi, eax
push ebx
mov ebx, dword [ebp - 0x2c]
xor eax, eax
push eax
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebx]
mov dword [ebx], edi
test eax, eax
je 0x428f6d
push eax
call fcn.0044fc0e
add esp, 4
mov edi, dword [ebx]
push dword [ebp - 0x28]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x24]
push 0
push 0xfde9
mov ebx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
call ebx
test eax, eax
mov edx, dword [ebp - 0x14]
mov eax, 0x10
cmovle edx, eax
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
add esi, 8
cmp esi, dword [ebp - 0x10]
jne 0x428f0b
jmp 0x428fab
xor edx, edx
mov edi, dword [ebp - 0x34]
mov ebx, edx
mov esi, dword [edi]
test esi, esi
je 0x428fd2
shl esi, 2
mov eax, dword [edi + esi]
mov dword [edi + esi], 0
test eax, eax
je 0x428fcd
push eax
call fcn.0044fc0e
add esp, 4
add esi, 0xfffffffc
jne 0x428fb6
push edi
call fcn.0044fc0e
add esp, 4
push dword [ebp - 0x3c]
call fcn.0044fc0e
add esp, 4
mov eax, ebx
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x28]
setne bl
push eax
call fcn.0044fc0e
add esp, 4
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x2c]
jmp 0x428e59