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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
mov eax, dword [0x46f650]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x45d67c]
mov dword [ebp - 0x120], eax
mov cl, byte [0x45d680]
mov byte [ebp - 0x11c], cl
push 0xff
push 0
lea edx, [ebp - 0x11b]
push edx
call fcn.0042ac10
add esp, 0xc
push 0x100
lea eax, [ebp - 0x11c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4446df
xor eax, eax
jmp 0x444937
push 0
push 0
push 3
push 0
push 3
push SysReAllocStringLen
lea ecx, [ebp - 0x120]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0xffffffff
jne 0x444711
xor eax, eax
jmp 0x444937
push 0
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x128]
push eax
call fcn.0040b5c4
add esp, 4
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x124], ecx
push 0
lea edx, [ebp - 0x128]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44478d
jmp 0x444900
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x124]
lea ecx, [eax + edx + 4]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x140]
movzx eax, word [edx + 0x10]
mov ecx, dword [ebp - 0x140]
lea edx, [ecx + eax + 0x14]
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x138]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
je 0x4447e7
jmp 0x444900
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x144], 0
jmp 0x44480c
mov edx, dword [ebp - 0x144]
add edx, 1
mov dword [ebp - 0x144], edx
mov eax, dword [ebp - 0x140]
movzx ecx, word [eax + 2]
cmp dword [ebp - 0x144], ecx
jge 0x44487c
mov edx, dword [ebp - 0x144]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x13c]
movzx ecx, byte [eax + edx + 5]
test ecx, ecx
jne 0x44487a
push 5
push str..info
mov edx, dword [ebp - 0x144]
imul edx, edx, 0x28
add edx, dword [ebp - 0x13c]
push edx
call fcn.00433607
add esp, 0xc
test eax, eax
jne 0x44487a
mov eax, dword [ebp - 0x144]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x124]
add edx, dword [ecx + eax + 0x14]
mov dword [ebp - 0x12c], edx
jmp 0x44487c
jmp 0x4447fd
cmp dword [ebp - 0x12c], 0
jne 0x444889
jmp 0x444900
mov eax, dword [ebp - 0x12c]
add eax, 0x1f0
mov dword [ebp - 0x18], eax
push 0x10
push 0
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.0042ac10
add esp, 0xc
mov byte [ebp - 0x14], 0
xor edx, edx
mov dword [ebp - 0x13], edx
mov dword [ebp - 0xf], edx
mov dword [ebp - 0xb], edx
mov word [ebp - 7], dx
mov byte [ebp - 5], dl
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x128]
push ecx
mov edx, dword [ebp - 0x124]
push edx
call fcn.004443e0
add esp, 0xc
mov byte [ebp - 0x14], 0xb8
mov byte [ebp - 0x13], 0x36
push 0x10
lea eax, [ebp - 0x14]
push eax
push 0x4a21f0
call fcn.0042ba43
add esp, 0xc
test eax, eax
jne 0x444900
mov dword [ebp - 0x134], 1
cmp dword [ebp - 0x124], 0
je 0x444924
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14c]
push edx
call fcn.0040b5f3
add esp, 4
mov eax, dword [ebp - 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00428d44
mov esp, ebp
pop ebp
ret