Function at 0x1059ae4
Capabilities:
Get file size

Disassembly:
mov eax, 0x106bea7
call fcn.01055bd8
sub esp, 0x434
mov eax, dword [0x107342c]
push esi
mov esi, ecx
mov dword [ebp - 0x10], eax
push edi
mov dword [ebp - 0x430], esi
mov byte [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0x1016a84
mov dword [ebp - 0x438], esi
and dword [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.0104607d
test al, al
jne 0x1059b38
push 0x57
pop edi
jmp 0x1059dad
push ebx
push 0x80000000
mov ecx, esi
call fcn.01058504
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0x420], ebx
jne 0x1059b5f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1059dac
lea eax, [ebp - 0x418]
push eax
push ebx
mov ecx, esi
call fcn.01058ee4
mov edi, eax
test edi, edi
jne 0x1059d97
push dword [ebp + 8]
lea eax, [ebp - 0x418]
push eax
mov ecx, esi
call fcn.010588c4
cmp eax, 0xffffffff
mov dword [ebp - 0x424], eax
jne 0x1059b9c
push 0x53
pop edi
jmp 0x1059d97
shl eax, 4
mov cl, byte [ebp + eax - 0x407]
mov byte [ebp - 0x419], cl
mov ecx, dword [ebp + eax - 0x410]
mov eax, dword [ebp + eax - 0x40c]
push 0
push ebx
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x42c], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
jne 0x1059be1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1059d97
lea ebx, [eax - 0x408]
push ebx
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
mov dword [ebp - 0x428], eax
jne 0x1059c09
push 0xe
pop edi
jmp 0x1059d79
push 0x408
push ebx
push eax
push dword [ebp - 0x420]
mov ecx, esi
call fcn.01058674
mov edi, eax
test edi, edi
jne 0x1059d79
mov eax, dword [ebp - 0x424]
mov ecx, dword [ebp - 0x418]
inc eax
cmp eax, ecx
mov dword [ebp - 0x424], eax
jae 0x1059c80
movzx edx, byte [ebp - 0x419]
shl eax, 4
lea eax, [ebp + eax - 0x420]
mov ecx, dword [ebp - 0x42c]
lea esi, [eax + 0xc]
lea edi, [eax - 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add ecx, edx
movsd dword es:[edi], dword [esi]
sub dword [eax], ecx
inc dword [ebp - 0x424]
mov ecx, dword [ebp - 0x418]
add eax, 0x10
cmp dword [ebp - 0x424], ecx
jb 0x1059c4f
mov esi, dword [ebp - 0x430]
push dword [ebp - 0x420]
dec ecx
mov dword [ebp - 0x418], ecx
shl ecx, 4
mov byte [ebp + ecx - 0x408], 0
mov ecx, dword [ebp - 0x418]
shl ecx, 4
xor eax, eax
mov dword [ebp + ecx - 0x414], eax
mov ecx, dword [ebp - 0x418]
shl ecx, 4
mov dword [ebp + ecx - 0x40c], eax
mov ecx, dword [ebp - 0x418]
shl ecx, 4
mov dword [ebp + ecx - 0x410], eax
mov eax, dword [ebp - 0x418]
shl eax, 4
mov byte [ebp + eax - 0x407], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, esi
call fcn.010585bc
cmp eax, 0xffffffff
mov dword [ebp - 0x420], eax
jne 0x1059cfb
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1059d77
lea ecx, [ebp - 0x418]
push ecx
push eax
mov ecx, esi
call fcn.0105907c
mov edi, eax
test edi, edi
jne 0x1059d79
mov esi, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x430]
push 0x408
add esi, 0xfffffbf8
push esi
push dword [ebp - 0x428]
push dword [ebp - 0x420]
call fcn.01058794
mov edi, eax
test edi, edi
jne 0x1059d79
movzx eax, byte [ebp - 0x419]
push dword [ebp - 0x434]
mov ecx, dword [ebp - 0x430]
sub ebx, eax
add eax, esi
add eax, dword [ebp - 0x428]
sub ebx, esi
sub ebx, dword [ebp - 0x42c]
add eax, dword [ebp - 0x42c]
push ebx
push eax
push dword [ebp - 0x420]
call fcn.01058794
mov edi, eax
cmp dword [ebp - 0x428], 0
je 0x1059d97
push dword [ebp - 0x428]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 0x420], 0xffffffff
je 0x1059dac
push dword [ebp - 0x420]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.0104617c
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
call fcn.0103e4d8
leave
ret 4