Function at 0x45dc20
Capabilities:
Get file size
Read file on windows

Disassembly:
mov eax, 0x41c4
call fcn.0046e9b0
mov eax, dword [esp + 0x41cc]
push ebx
push ebp
push esi
push edi
push 0
push 0
push 3
push 0
push 3
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x45deaa
push 0
push 0
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea ecx, [esp + 0x18]
push ecx
push 0x20
lea edx, [esp + 0x54]
push edx
push ebp
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x60], 0x34
je 0x45dea3
push 0x2100
lea eax, [esp + 0xcc]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, 0x5000
cmp eax, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], edi
jbe 0x45dea3
call fcn.00451040
cmp dword [0x47c2f0], 0
jne 0x45dea3
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x44]
push edx
push edi
lea ebx, [esp + 0xd4]
mov esi, ebp
call fcn.0045da80
test eax, eax
je 0x45de8f
mov ebx, dword [esp + 0xfc]
cmp ebx, 0x100
jbe 0x45dd07
mov ebx, 0x68
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
xor eax, eax
cmp byte [esp + 0x108], 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
jne 0x45dd66
lea edi, [esp + 0x18]
lea esi, [esp + 0xd0]
call fcn.00460400
jmp 0x45dd7c
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
lea edx, [esp + ebx + 0xc8]
push 0x40
push edx
call sub.msvcrt.dll_strchr
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe8]
add esp, 8
test eax, eax
je 0x45ddb1
mov edx, dword [esp + 0xe2]
lea ecx, [esp + 0x28]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x10c]
add esi, 0xfffffff6
cmp eax, esi
jae 0x45de62
jmp 0x45ddd0
movzx ecx, word [esp + eax + 0xca]
cmp cx, 0x1f10
movzx edx, word [esp + eax + 0xc8]
je 0x45de03
cmp cx, 0x1e10
je 0x45de03
test dx, dx
je 0x45de62
test cx, cx
je 0x45de62
movzx ecx, dx
add eax, ecx
cmp eax, esi
jb 0x45ddd0
jmp 0x45de62
test dx, dx
jbe 0x45de62
cmp cx, 0x1e10
jne 0x45de3d
push 0x1000
lea edx, [esp + 0x21cc]
push edx
push 0xffffffffffffffff
lea eax, [esp + eax + 0xd8]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [esp + 0x21c8]
mov dword [esp + 0x34], ecx
jmp 0x45de62
cmp cx, 0x1f10
jne 0x45de62
lea ebx, [esp + eax + 0xcc]
mov eax, 0x1000
lea edi, [esp + 0x21c8]
call fcn.0045fe00
mov edx, edi
mov dword [esp + 0x34], edx
cmp dword [esp + 0x30], 0
je 0x45de80
mov ecx, dword [esp + 0x41d8]
mov eax, dword [ecx]
mov eax, dword [eax]
add dword [esp + 0x30], 1
lea edx, [esp + 0x18]
push edx
call eax
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x14]
shl ecx, 7
add edi, ecx
jmp 0x45de95
add edi, 0x80
cmp edi, dword [esp + 0x3c]
mov dword [esp + 0x14], edi
jb 0x45dcc0
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x41c4
ret 8