Function at 0x45d4f0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x34
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
push esi
test ebx, ebx
push edi
je 0x45d93c
push 0x98
call sub.MFC42u.DLL_operatornew
mov esi, eax
add esp, 4
test esi, esi
je 0x45d93c
mov ecx, 0x26
xor eax, eax
mov edi, esi
push 0x48c49c
rep stosd dword es:[edi], eax
push ebx
call dword [sym.imp.MSVCRT.dll__wfopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x45d93c
mov ebp, dword [sym.imp.MSVCRT.dll_fread]
push edi
push 0x12
lea eax, [esp + 0x38]
push 1
push eax
call ebp
mov eax, dword [esp + 0x40]
add esp, 0x10
test ah, ah
jne 0x45d932
mov cl, byte [esp + 0x32]
cmp cl, 0xa
je 0x45d571
cmp cl, 2
jne 0x45d932
cmp byte [esp + 0x40], 0x18
jb 0x45d932
test al, al
je 0x45d592
and eax, 0xff
push 0
push eax
push edi
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0xc
mov dword [esi + 4], 1
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
and ecx, 0xffff
mov dword [esi + 0x8c], ecx
mov edx, dword [esp + 0x3e]
and eax, 0xff
and edx, 0xffff
push 4
mov dword [esp + 0x28], eax
mov dword [esi + 0x90], edx
call sub.MFC42u.DLL_operatornew
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x8c]
imul eax, dword [esi + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
call sub.MFC42u.DLL_operatornew
mov edx, dword [esi + 0x94]
add esp, 8
mov dword [edx], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [eax]
mov dword [ecx + 0xc], 3
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 0x8c]
mov eax, dword [edx]
mov dword [eax], ecx
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
mov eax, dword [edx]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x8c]
mov ecx, dword [eax]
shl edx, 2
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x90]
xor edx, edx
test eax, eax
mov dword [esp + 0x2c], edx
jbe 0x45d91c
mov ecx, dword [esi + 0x8c]
mov ebx, ecx
imul ebx, edx
mov dword [esp + 0x20], ebx
mov bl, byte [esp + 0x41]
test bl, 0x10
jne 0x45d672
sub eax, edx
dec eax
imul eax, ecx
mov dword [esp + 0x20], eax
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x1c], ebx
jbe 0x45d909
cmp byte [esp + 0x32], 0xa
jne 0x45d859
push edi
push 1
lea edx, [esp + 0x1a]
push 1
push edx
call ebp
mov al, byte [esp + 0x22]
xor bx, bx
mov cl, al
add esp, 0x10
and cl, 0x7f
mov bl, cl
inc ebx
test al, 0x80
je 0x45d78d
push edi
push 1
lea edx, [esp + 0x50]
push 1
push edx
call ebp
mov al, byte [esp + 0x58]
push edi
push 1
lea ecx, [esp + 0x60]
push 1
push ecx
mov byte [esp + 0x33], al
call ebp
mov dl, byte [esp + 0x68]
push edi
push 1
lea eax, [esp + 0x70]
push 1
push eax
mov byte [esp + 0x44], dl
call ebp
mov eax, dword [esp + 0x54]
mov cl, byte [esp + 0x78]
add esp, 0x30
cmp eax, 0x20
mov byte [esp + 0x15], cl
mov byte [esp + 0x10], 0xff
jne 0x45d715
push edi
push 1
lea edx, [esp + 0x50]
push 1
push edx
call ebp
mov al, byte [esp + 0x58]
add esp, 0x10
mov byte [esp + 0x10], al
mov cx, bx
add ebx, 0xffff
test cx, cx
je 0x45d8f3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and ebx, 0xffff
lea eax, [ecx + edx]
shl eax, 2
inc ebx
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x94]
add eax, 4
dec ebx
mov edx, dword [ecx]
mov cl, byte [esp + 0x13]
mov byte [edx + eax + 0xc], cl
mov edx, dword [esi + 0x94]
mov ecx, dword [edx]
mov dl, byte [esp + 0x14]
mov byte [ecx + eax + 0xd], dl
mov ecx, dword [esi + 0x94]
mov edx, dword [ecx]
mov cl, byte [esp + 0x15]
mov byte [edx + eax + 0xe], cl
mov edx, dword [esi + 0x94]
mov ecx, dword [edx]
mov dl, byte [esp + 0x10]
mov byte [ecx + eax + 0xf], dl
jne 0x45d742
jmp 0x45d8f3
mov ax, bx
add ebx, 0xffff
test ax, ax
je 0x45d8f3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and ebx, 0xffff
lea eax, [ecx + edx]
shl eax, 2
inc ebx
mov dword [esp + 0x28], eax
add ecx, ebx
mov dword [esp + 0x1c], ecx
push edi
push 1
lea eax, [esp + 0x1e]
push 1
push eax
call ebp
push edi
push 1
lea ecx, [esp + 0x2f]
push 1
push ecx
call ebp
push edi
push 1
lea edx, [esp + 0x40]
push 1
push edx
call ebp
mov eax, dword [esp + 0x54]
add esp, 0x30
cmp eax, 0x20
mov byte [esp + 0x11], 0xff
jne 0x45d802
push edi
push 1
lea eax, [esp + 0x19]
push 1
push eax
call ebp
add esp, 0x10
mov ecx, dword [esi + 0x94]
mov eax, dword [esp + 0x28]
add eax, 4
dec ebx
mov edx, dword [ecx]
mov cl, byte [esp + 0x16]
mov dword [esp + 0x28], eax
mov byte [edx + eax + 0xc], cl
mov edx, dword [esi + 0x94]
mov ecx, dword [edx]
mov dl, byte [esp + 0x17]
mov byte [ecx + eax + 0xd], dl
mov ecx, dword [esi + 0x94]
mov edx, dword [ecx]
mov cl, byte [esp + 0x18]
mov byte [edx + eax + 0xe], cl
mov edx, dword [esi + 0x94]
mov ecx, dword [edx]
mov dl, byte [esp + 0x11]
mov byte [ecx + eax + 0xf], dl
jne 0x45d7be
jmp 0x45d8f3
push edi
push 1
lea eax, [esp + 0x21]
push 1
push eax
mov byte [esp + 0x20], 0xff
call ebp
push edi
push 1
lea ecx, [esp + 0x32]
push 1
push ecx
call ebp
push edi
push 1
lea edx, [esp + 0x43]
push 1
push edx
call ebp
mov eax, dword [esp + 0x54]
add esp, 0x30
cmp eax, 0x20
jne 0x45d89d
push edi
push 1
lea eax, [esp + 0x18]
push 1
push eax
call ebp
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x94]
lea edx, [ebx + ecx]
mov ecx, dword [eax]
mov al, byte [esp + 0x19]
mov byte [ecx + edx*4 + 0x10], al
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x94]
lea eax, [ebx + ecx]
mov ecx, dword [edx]
mov dl, byte [esp + 0x1a]
shl eax, 2
inc ebx
mov byte [ecx + eax + 0x11], dl
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x1c], ebx
mov edx, dword [ecx]
mov cl, byte [esp + 0x1b]
mov byte [edx + eax + 0x12], cl
mov edx, dword [esi + 0x94]
mov ecx, dword [edx]
mov dl, byte [esp + 0x10]
mov byte [ecx + eax + 0x13], dl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esi + 0x8c]
cmp ebx, eax
jb 0x45d680
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 0x90]
inc edx
cmp edx, eax
mov dword [esp + 0x2c], edx
jb 0x45d650
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 4