Function at 0x425870
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
mov ebx, ecx
je 0x425889
mov eax, dword [ebx + 0x2c]
jmp 0x425dcf
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp eax, edi
jne 0x4258a8
mov dword [ebx + 0x30], 1
mov dword [ebx + 0x2c], 0
xor eax, eax
jmp 0x425dcf
cmp edi, eax
mov dword [ebp - 0x14], eax
je 0x42591e
mov dword [ebp - 0x24], ebx
lea ebx, [edi + 4]
mov dword [ebp - 0x20], 2
push dword [ebx - 4]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
add esi, dword [ebp - 0x20]
cmp dword [ebp - 0x14], ebx
je 0x4258da
inc esi
add ebx, 4
mov dword [ebp - 0x20], esi
jmp 0x4258bc
push esi
call fcn.0045f403
add esp, 4
mov ebx, eax
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x34], ebx
mov esi, ebx
mov ebx, 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 edi, 4
lea esi, [eax + esi + 1]
cmp ebx, edi
jne 0x4258f9
mov ebx, dword [ebp - 0x24]
jmp 0x425930
push 1
call fcn.0045f403
add esp, 4
mov esi, eax
mov byte [eax], 0
mov dword [ebp - 0x34], eax
mov byte [esi], 0
mov ecx, 4
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov dword [ebp - 0x20], esi
sar esi, 2
mov eax, esi
mul ecx
seto cl
xor edx, edx
dec edx
add eax, 4
cmovb eax, edx
test cl, cl
cmovne eax, edx
push eax
call fcn.0045f403
add esp, 4
mov edi, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], esi
mov dword [edi], esi
lea esi, [edi + 4]
test eax, eax
je 0x425982
and eax, 0xfffffffc
push eax
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebx + 4]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], eax
push 0x4939e2
push dword [ebx]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
add esp, 8
test eax, eax
je 0x425c1a
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
test eax, eax
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x38], edi
jne 0x425c3d
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
add esp, 4
test eax, eax
jle 0x425c3d
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.0045f403
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 0x425c32
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 0x425c32
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], esi
mov edi, ecx
mov byte [ecx + eax], 0
lea esi, [edi + 1]
lea ecx, [edi + 2]
lea eax, [edi + 3]
mov ebx, edi
mov dl, byte [ebx]
cmp dl, 0xa
je 0x425a50
cmp dl, 0xd
jne 0x425a56
inc ebx
inc esi
inc ecx
inc eax
jmp 0x425a44
test dl, dl
mov edi, esi
mov dh, dl
je 0x425dd7
cmp dh, 0xd
je 0x425a77
cmp dh, 0xa
je 0x425a77
mov dh, byte [edi]
inc edi
test dh, dh
jne 0x425a62
xor edi, edi
jmp 0x425a7d
mov byte [edi - 1], 0
mov dl, byte [ebx]
cmp dl, 0x23
je 0x425b62
cmp dl, 0x3b
je 0x425b62
jmp 0x425a9b
cmp dl, 0x20
jne 0x425aaf
mov dl, byte [esi]
inc esi
inc ecx
inc eax
cmp dl, 0x1f
jg 0x425a91
cmp dl, 9
je 0x425a96
test dl, dl
je 0x425b62
jmp 0x425ac2
cmp dl, 0x5b
jne 0x425ac2
mov edx, esi
mov bl, byte [edx]
cmp bl, 0x5d
jne 0x425ade
inc edx
inc ecx
inc eax
jmp 0x425ab6
test byte [ebp - 0x1c], 1
je 0x425b62
lea eax, [esi - 1]
mov dword [ebp - 0x3c], eax
cmp dl, 0x3d
jne 0x425afc
mov dl, byte [eax + 1]
inc eax
inc esi
jmp 0x425ad2
test bl, bl
jne 0x425aeb
mov dword [ebp - 0x1c], 0
jmp 0x425b62
cmp bl, 0x5d
je 0x425b10
mov bl, byte [edx + 1]
inc edx
inc ecx
inc eax
test bl, bl
jne 0x425aeb
jmp 0x425b27
test dl, dl
je 0x425b62
cmp dl, 0x3d
je 0x425b75
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x425b00
xor esi, esi
jmp 0x425b79
mov byte [edx], 0
mov dl, byte [ecx]
cmp dl, 9
je 0x425b1f
cmp dl, 0x20
jne 0x425b23
inc ecx
inc eax
jmp 0x425b13
test dl, dl
jne 0x425b31
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x425b4c
push eax
jmp 0x425b51
cmp dl, 0x20
je 0x425c11
cmp dl, 9
je 0x425c11
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x425b31
jmp 0x425ae2
push 0x4915ee
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 0x425a39
jmp 0x425ddd
mov byte [esi - 1], 0
mov ebx, dword [ebp - 0x34]
cmp byte [ebx], 0
je 0x425b62
mov dword [ebp - 0x30], 0
push ebx
push dword [ebp - 0x3c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x425baf
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ebx, [eax + ebx + 1]
inc dword [ebp - 0x30]
cmp byte [ebx], 0
jne 0x425b88
jmp 0x425b62
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x28]
jae 0x425b62
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
inc eax
mov dword [ebp - 0x3c], eax
push eax
call fcn.0045f403
add esp, 4
mov ebx, eax
push dword [ebp - 0x3c]
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 0x425bff
push eax
call fcn.0045f40c
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 0x425b62
mov byte [eax - 1], 0
jmp 0x425ae2
mov dword [ebx + 0x30], 1
mov dword [ebx + 0x2c], 6
mov edx, 6
jmp 0x425d92
push dword [ebp - 0x10]
call fcn.0045f40c
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 ecx, dword [ebp - 0x20]
mov dword [ebx + 0x30], 1
test edx, edx
mov dword [ebx + 0x2c], edx
jne 0x425d92
mov eax, ebx
mov ebx, dword [ebx + 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0x18]
cmp ebx, eax
mov dword [ebp - 0x2c], eax
je 0x425cd3
mov eax, dword [ebx]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x425ccb
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], ecx
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.0045f403
add esp, 4
mov esi, eax
push edi
mov edi, dword [ebp - 0x28]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi]
mov dword [edi], esi
test eax, eax
je 0x425cbc
push eax
call fcn.0045f40c
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 ebx, dword [ebp - 0x2c]
jne 0x425c71
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
cmp esi, eax
mov dword [ebp - 0x10], eax
je 0x425d8d
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [esi]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x425d7f
mov ecx, dword [esi + 4]
mov dword [ebp - 0x14], edx
xor edx, edx
mov dword [ebp - 0x24], ecx
push edx
push edx
xor edi, edi
dec edi
push edi
mov dword [ebp - 0x28], eax
push eax
push edx
push 0xfde9
call ebx
mov ebx, eax
mov dword [ebp - 0x2c], eax
add ebx, eax
cmovb ebx, edi
push ebx
call fcn.0045f403
add esp, 4
mov edi, eax
push ebx
mov ebx, dword [ebp - 0x24]
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 0x425d54
push eax
call fcn.0045f40c
add esp, 4
mov edi, dword [ebx]
push dword [ebp - 0x2c]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x28]
push 0
push 0xfde9
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
call ebx
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
test eax, eax
mov eax, 0x10
cmovle edx, eax
add esi, 8
cmp esi, dword [ebp - 0x10]
jne 0x425cf2
jmp 0x425d92
mov edi, dword [ebp - 0x38]
xor edx, edx
mov esi, dword [edi]
mov ebx, edx
test esi, esi
je 0x425db9
shl esi, 2
mov eax, dword [edi + esi]
mov dword [edi + esi], 0
test eax, eax
je 0x425db4
push eax
call fcn.0045f40c
add esp, 4
add esi, 0xfffffffc
jne 0x425d9d
push edi
call fcn.0045f40c
add esp, 4
push dword [ebp - 0x34]
call fcn.0045f40c
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]
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
cmp ecx, dword [ebp - 0x28]
setne bl
push eax
call fcn.0045f40c
add esp, 4
lea eax, [ebx + ebx*4]
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
jmp 0x425c3d