Function at 0x42a500
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x437a2b
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x44f008]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44f008]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], 0
cmp dword [esp + 0xf4], 0x10
mov eax, dword [esp + 0xe0]
mov esi, 1
mov dword [esp + 0xd0], esi
mov byte [esp + 0x17], 0
jae 0x42a577
lea eax, [esp + 0xe0]
lea ecx, [esp + 0x17]
push ecx
push 0x443a04
push eax
call fcn.00428d20
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x42a65d
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
lea ebx, [ebx]
mov al, byte [esp + 0x17]
cmp al, 1
jne 0x42a739
test esi, esi
jle 0x42a739
mov eax, dword [esp + 0xe0]
mov edi, 0x10
cmp dword [esp + 0xf4], edi
jae 0x42a5d0
lea eax, [esp + 0xe0]
push 0
push eax
call dword [sym.imp.MSVCR80.dll__access]
add esp, 8
sub esp, 0x1c
test eax, eax
mov dword [esp + 0x38], esp
je 0x42a5f9
mov edx, esp
push 0x43f6c8
lea eax, [esp + 0xfc]
push eax
push edx
jmp 0x42a609
mov ecx, esp
push 0x43f6a4
lea edx, [esp + 0xfc]
push edx
push ecx
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0xc
call fcn.00428bc0
add esp, 0x1c
push 0x3e8
call ebp
mov eax, dword [esp + 0xe0]
sub esi, 1
cmp dword [esp + 0xf4], edi
mov byte [esp + 0x17], 0
jae 0x42a640
lea eax, [esp + 0xe0]
lea ecx, [esp + 0x17]
push ecx
push 0x443a04
push eax
call fcn.00428d20
mov edi, eax
add esp, 0xc
test edi, edi
je 0x42a5a0
push str.xxxx
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
test edi, edi
mov byte [esp + 0xd0], 2
je 0x42aa60
mov esi, dword [sym.imp.MSVCR80.dll_fseek]
push 2
push 0
push edi
call esi
push edi
call dword [sym.imp.MSVCR80.dll_ftell]
push 0
push 0
push edi
mov ebp, eax
call esi
mov eax, ebp
cdq
add esp, 0x1c
lea ecx, [esp + 0x1c]
lea esi, [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.00403790
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0xd4], 3
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov ecx, esi
mov byte [esp + 0xd0], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
cmp ebp, 0x300000
mov byte [esp + 0xd0], 4
jge 0x42a7c5
push edi
call dword [sym.imp.MSVCR80.dll_fclose]
add esp, 4
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x64]
mov dword [esp + 0x18], 1
mov byte [esp + 0xd0], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x42aa75
test edi, edi
jne 0x42a65d
cmp al, 1
jne 0x42a65d
cmp dword [esp + 0xf4], 0x10
mov eax, dword [esp + 0xe0]
jae 0x42a761
lea eax, [esp + 0xe0]
push 0
push eax
call dword [sym.imp.MSVCR80.dll__access]
add esp, 8
sub esp, 0x1c
test eax, eax
mov dword [esp + 0x38], esp
je 0x42a78a
mov edx, esp
push 0x43f60c
lea eax, [esp + 0xfc]
push eax
push edx
jmp 0x42a79a
mov ecx, esp
push 0x43f5e4
lea edx, [esp + 0xfc]
push edx
push ecx
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0xc
call fcn.00428bc0
add esp, 0x1c
push str.FileNotExist
mov ecx, ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [esp + 0x18], 1
jmp 0x42aa8a
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
push 0x100001
add ebp, 0xfff00000
push 0x10
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
call fcn.00420070
mov esi, eax
add esp, 8
test esi, esi
jne 0x42a846
push edi
call dword [sym.imp.MSVCR80.dll_fclose]
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x38], esp
push str.new_mem_failed
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
call fcn.00428bc0
add esp, 0x1c
lea edx, [esp + 0x64]
push edx
mov ecx, ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x64]
mov dword [esp + 0x18], 1
mov byte [esp + 0xd0], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x42aa75
xor ebx, ebx
xor ebp, ebp
mov eax, dword [esp + ebp*4 + 0x1c]
push 0
push eax
push edi
call dword [sym.imp.MSVCR80.dll_fseek]
add esp, 0xc
test eax, eax
push edi
jne 0x42a9bb
push 1
push 0x100000
push esi
mov dword [esi], eax
call dword [sym.imp.MSVCR80.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x42aa36
push 0x100000
push esi
push ebx
mov byte [esi + 0x100000], 0
call fcn.00401000
add ebp, 1
add esp, 0xc
cmp ebp, 3
mov ebx, eax
jl 0x42a84a
push esi
call fcn.00420060
push edi
call dword [sym.imp.MSVCR80.dll_fclose]
xor eax, eax
push ebx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov byte [esp + 0xcc], al
lea eax, [esp + 0xc4]
push 0x443a0c
push eax
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x14
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0xa0]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov esi, 8
sub esi, dword [esp + 0xb0]
mov byte [esp + 0xd0], 5
test esi, esi
jle 0x42a979
mov edi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov bl, 6
push 0x443a10
lea ecx, [esp + 0x4c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea edx, [esp + 0x9c]
push edx
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0xdc], bl
call edi
add esp, 0xc
push eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0xd4], 7
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x2c]
mov byte [esp + 0xd0], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x48]
mov byte [esp + 0xd0], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
sub esi, 1
test esi, esi
jg 0x42a910
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x68]
call dword [0x43f244]
mov esi, dword [esp + 0x28]
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x18], 1
mov byte [esp + 0xd0], 4
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x42a9f6
call dword [sym.imp.MSVCR80.dll_fclose]
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x38], esp
push str.fseek_failed
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
call fcn.00428bc0
add esp, 0x1c
lea ecx, [esp + 0x64]
push ecx
mov esi, dword [esp + 0x2c]
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x64]
mov byte [esp + 0xd0], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x80]
mov byte [esp + 0xd0], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xdc]
mov byte [esp + 0xd0], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, esi
jmp 0x42aaa1
push edi
call dword [sym.imp.MSVCR80.dll_fclose]
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x38], esp
push str.fread_failed
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
call fcn.00428bc0
add esp, 0x1c
lea edx, [esp + 0x64]
push edx
jmp 0x42a9e2
push str.file_can_not_open
mov ecx, ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x80]
mov byte [esp + 0xd0], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xdc]
mov byte [esp + 0xd0], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, ebx
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.00436b14
add esp, 0xc0
ret