Function at 0x4185f8
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x10
add esp, 0xfffff004
push eax
dec eax
jne 0x418601
mov eax, dword [ebp - 4]
add esp, 0xffffff38
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x100cc], ecx
mov dword [ebp - 0x100c4], ecx
mov dword [ebp - 0x100c8], ecx
mov dword [ebp - 0x100c0], ecx
mov dword [ebp - 0x100bc], ecx
mov dword [ebp - 0x100b8], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x4188bc
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 4]
call fcn.00407284
test al, al
jne 0x418692
mov eax, dword [ebp - 4]
call fcn.00405fb8
test al, al
jne 0x418692
lea edx, [ebp - 0x100b8]
mov eax, dword [0x41a700]
call fcn.0040510c
mov eax, dword [ebp - 0x100b8]
mov edx, 0x10
call fcn.00406bf4
jmp 0x418896
lea edx, [ebp - 0x100bc]
xor eax, eax
call fcn.00405d30
mov eax, dword [ebp - 0x100bc]
mov edx, 0x80000301
call fcn.0040720c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x418896
cmp dword [ebp - 0x10], 0xffffffff
je 0x418896
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_GetFileSize
mov esi, eax
mov eax, 0xffffff9d
mov cl, 2
mov edx, eax
mov eax, dword [ebp - 0x10]
call fcn.00407240
lea edx, [ebp - 0x7b]
mov ecx, 0x63
mov eax, dword [ebp - 0x10]
call fcn.00407250
cmp esi, dword [ebp - 0x73]
je 0x418708
mov eax, dword [ebp - 0x10]
call fcn.00407234
jmp 0x418896
lea eax, [ebp - 0x100c0]
lea edx, [ebp - 0x4b]
mov ecx, 0x33
call fcn.00403b48
mov edx, dword [ebp - 0x100c0]
mov eax, dword [0x41a65c]
mov eax, dword [eax]
call fcn.00407c14
cmp dword [ebp - 0x6f], 0
jne 0x41873a
mov dword [ebp - 0x6f], 0x320
cmp dword [ebp - 0x6b], 0
jne 0x418747
mov dword [ebp - 0x6b], 0x258
mov eax, dword [ebp - 0x6f]
test eax, eax
jle 0x418774
cmp dword [ebp - 0x6b], 0
jle 0x418774
mov edx, eax
add edx, dword [ebp - 0x67]
mov eax, edi
call fcn.00408290
mov edx, dword [ebp - 0x6b]
add edx, dword [ebp - 0x63]
mov eax, edi
call fcn.00408270
mov eax, edi
call fcn.004082b0
mov eax, dword [ebp - 0x7b]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x77]
test eax, eax
jle 0x41888c
mov dword [ebp - 0x18], eax
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00407240
lea edx, [ebp - 0xb3]
mov ecx, 0x38
mov eax, dword [ebp - 0x10]
call fcn.00407250
lea edx, [ebp - 0x100c4]
mov eax, dword [ebp - 4]
call fcn.00405f58
mov eax, dword [ebp - 0x100c4]
push eax
lea eax, [ebp - 0x100c8]
lea edx, [ebp - 0xb3]
mov ecx, 0x33
call fcn.00403b48
mov ecx, dword [ebp - 0x100c8]
lea eax, [ebp - 0x14]
pop edx
call fcn.00403bc0
add dword [ebp - 0xc], 0x38
mov eax, dword [ebp - 0x80]
add dword [ebp - 0xc], eax
mov edx, 0xc0000100
mov eax, dword [ebp - 0x14]
call fcn.0040720c
mov edi, eax
test edi, edi
je 0x418804
cmp edi, 0xffffffff
jne 0x418826
lea edx, [ebp - 0x100cc]
mov eax, dword [0x41a674]
call fcn.0040510c
mov eax, dword [ebp - 0x100cc]
mov edx, 0x10
call fcn.00406bf4
jmp 0x41888c
xor esi, esi
mov ebx, 0x10000
lea edx, [ebx + esi]
mov eax, dword [ebp - 0x80]
cmp edx, eax
jbe 0x41883b
mov ebx, eax
sub ebx, esi
lea edx, [ebp - 0x100b3]
mov ecx, ebx
mov eax, dword [ebp - 0x10]
call fcn.00407250
mov ebx, eax
test ebx, ebx
jbe 0x418867
lea edx, [ebp - 0x100b3]
mov ecx, ebx
mov eax, edi
call fcn.0040726c
add esi, ebx
cmp esi, dword [ebp - 0x80]
jb 0x418828
mov eax, edi
call fcn.00407234
cmp word [ebp + 0xa], 0
je 0x418883
xor ecx, ecx
mov cl, byte [ebp - 0x7c]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
call dword [ebp + 8]
dec dword [ebp - 0x18]
jne 0x418788
mov eax, dword [ebp - 0x10]
call fcn.00407234
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4188c3
lea eax, [ebp - 0x100cc]
mov edx, 6
call fcn.004038fc
lea eax, [ebp - 0x14]
call fcn.004038d8
ret