Function at 0x402df0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x403ed9
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x407004]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
xor edi, edi
mov dword [esp + 0x38], edi
mov esi, dword [sym.imp.MSVCR90.dll_malloc]
push 0x4000
call esi
mov ebx, eax
push 0x4000
mov dword [esp + 0x1c], ebx
call esi
add esp, 8
mov dword [esp + 0x18], eax
cmp ebx, edi
je 0x402ffd
cmp eax, edi
je 0x402ffd
mov eax, dword [esp + 0x44]
mov ebp, 8
cmp dword [esp + 0x58], ebp
jae 0x402e61
lea eax, [esp + 0x44]
mov esi, dword [sym.imp.MSVCR90.dll__wfopen]
push 0x405658
push eax
call esi
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x74], ebp
jae 0x402e82
lea eax, [esp + 0x60]
push 0x405658
push eax
call esi
add esp, 8
mov ebp, eax
test ebx, ebx
je 0x402fd8
test ebp, ebp
je 0x402fce
mov esi, dword [sym.imp.MSVCR90.dll_fseek]
push 2
push 0
push ebx
call esi
push 2
push 0
push ebp
call esi
mov edi, dword [sym.imp.MSVCR90.dll_ftell]
push ebx
call edi
cdq
push ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
call edi
push 0
cdq
push 0
push ebx
mov edi, eax
mov dword [esp + 0x54], edx
call esi
push 0
push 0
push ebp
call esi
add esp, 0x38
cmp dword [esp + 0x1c], edi
jne 0x402fcb
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x20], eax
jne 0x402fcb
mov ecx, dword [esp + 0x14]
push ebx
push 0x4000
push 1
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
mov edx, dword [esp + 0x28]
push ebp
push 0x4000
push 1
push edx
mov esi, eax
xor edi, edi
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x20
xor ecx, ecx
cmp esi, eax
jne 0x402fcb
cmp edi, ecx
jne 0x402fcb
cmp esi, eax
jne 0x402f49
cmp edi, ecx
jne 0x402f49
mov eax, esi
or eax, edi
je 0x40302f
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, esi
cmp esi, 4
jb 0x402f6c
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x402fcb
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x402f58
test eax, eax
je 0x402f90
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x402fcb
cmp eax, 1
jbe 0x402f90
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x402fcb
cmp eax, 2
jbe 0x402f90
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x402fcb
mov ecx, dword [esp + 0x14]
push ebx
push 0x4000
push 1
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
mov edx, dword [esp + 0x28]
push ebp
push 0x4000
push 1
push edx
mov esi, eax
xor edi, edi
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x20
xor ecx, ecx
cmp esi, eax
jne 0x402fcb
cmp edi, ecx
je 0x402f37
or edi, 0xffffffff
push ebx
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
test ebp, ebp
je 0x402fe6
push ebp
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.MSVCR90.dll_free]
push eax
call esi
mov ecx, dword [esp + 0x1c]
push ecx
call esi
add esp, 8
lea ecx, [esp + 0x40]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x38], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, edi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
xor edi, edi
jmp 0x402fce