Function at 0x1058534
Capabilities:
Get file size

Disassembly:
mov eax, 0x106a8a7
call fcn.01054748
sub esp, 0x434
mov eax, dword [0x10723e4]
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], 0x1016724
mov dword [ebp - 0x438], esi
and dword [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.01044e15
test al, al
jne 0x1058588
push 0x57
pop edi
jmp 0x10587fd
push ebx
push 0x80000000
mov ecx, esi
call fcn.01056fdc
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0x420], ebx
jne 0x10585af
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x10587fc
lea eax, [ebp - 0x418]
push eax
push ebx
mov ecx, esi
call fcn.01057924
mov edi, eax
test edi, edi
jne 0x10587e7
push dword [ebp + 8]
lea eax, [ebp - 0x418]
push eax
mov ecx, esi
call fcn.010573a4
cmp eax, 0xffffffff
mov dword [ebp - 0x424], eax
jne 0x10585ec
push 0x53
pop edi
jmp 0x10587e7
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 0x1058631
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x10587e7
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 0x1058659
push 0xe
pop edi
jmp 0x10587c9
push 0x408
push ebx
push eax
push dword [ebp - 0x420]
mov ecx, esi
call fcn.01057154
mov edi, eax
test edi, edi
jne 0x10587c9
mov eax, dword [ebp - 0x424]
mov ecx, dword [ebp - 0x418]
inc eax
cmp eax, ecx
mov dword [ebp - 0x424], eax
jae 0x10586d0
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 0x105869f
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.0105709c
cmp eax, 0xffffffff
mov dword [ebp - 0x420], eax
jne 0x105874b
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x10587c7
lea ecx, [ebp - 0x418]
push ecx
push eax
mov ecx, esi
call fcn.01057ad4
mov edi, eax
test edi, edi
jne 0x10587c9
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.0105727c
mov edi, eax
test edi, edi
jne 0x10587c9
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.0105727c
mov edi, eax
cmp dword [ebp - 0x428], 0
je 0x10587e7
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 0x10587fc
push dword [ebp - 0x420]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.01044efc
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
call fcn.0103d24a
leave
ret 4