Function at 0x488ab0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf160
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x502054]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], 0x514fc0
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
je 0x4890d6
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x4890d6
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [ebp + 8], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], esi
test esi, esi
jne 0x488b2f
test ebx, ebx
je 0x4890d6
test esi, esi
ja 0x4890d6
jb 0x488b43
cmp ebx, 0xc800000
ja 0x4890d6
mov dword [ebp - 4], 0
push ecx
push edi
lea ecx, [ebp - 0x40]
call fcn.004983c0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x38], 0
je 0x4890c3
mov byte [ebp - 4], 2
cmp ebx, 0x44
jne 0x488be1
test esi, esi
jne 0x488be1
push ebx
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x1c]
call fcn.004a3c20
add esp, 4
mov byte [ebp - 4], 3
push eax
mov esi, dword [ebp + 0x30]
mov ecx, esi
call fcn.0046a0f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.004608f0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x488be4
mov ecx, esi
call fcn.00469f60
push esi
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x514eec
call fcn.004693b0
mov ecx, dword [0x514eec]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp + 0xc]
cmp eax, ecx
je 0x488be7
add eax, 0x14
push eax
mov ecx, edi
call fcn.0046a0f0
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
jmp 0x488c0f
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
jmp 0x488c0f
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4890c3
push ecx
push ebx
push dword [ebp - 0x38]
lea ecx, [ebp - 0x74]
call fcn.00497340
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
call fcn.00497480
cmp eax, 1
jne 0x4890b7
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
mov eax, dword [ebp - 0x4c]
cmp eax, 1
je 0x488c54
cmp eax, 2
jne 0x4890b7
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], ecx
cmp byte [ebp + 0x2c], 0
je 0x488cde
test ecx, ecx
ja 0x488cde
jb 0x488c73
cmp ebx, 0x3200000
ja 0x488cde
mov byte [ebp - 4], 6
push ebx
mov edx, dword [ebp - 0x38]
lea ecx, [ebp + 0x2c]
call fcn.004a3c20
add esp, 4
mov byte [ebp - 4], 7
push eax
mov ecx, esi
call fcn.0046a0f0
mov byte [ebp - 4], 6
lea ecx, [ebp + 0x2c]
call fcn.004608f0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x488cd7
mov ecx, esi
call fcn.00469f60
push esi
lea eax, [ebp + 0x2c]
push eax
mov ecx, 0x514eec
call fcn.004693b0
mov ecx, dword [0x514eec]
mov dword [ebp + 0x30], ecx
mov eax, dword [ebp + 0x2c]
cmp eax, ecx
je 0x488cd7
add eax, 0x14
push eax
mov ecx, edi
call fcn.0046a0f0
mov dword [ebp - 4], 5
mov esi, dword [ebp + 8]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4890b7
lea ecx, [ebp + 0x2c]
call fcn.00460a60
mov byte [ebp - 4], 9
mov dword [ebp + 0x30], 0
mov dword [ebp + 8], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x74]
call fcn.004976f0
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x488dd9
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x488dd9
lea eax, [ecx + edx]
mov dword [ebp + 0x30], 0
cmp dword [ebp + 0x30], esi
ja 0x488dd9
jb 0x488d56
cmp eax, ebx
ja 0x488dd9
mov eax, 0x100000
cmp ecx, eax
cmovb eax, ecx
push eax
push edx
push ebx
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x18]
call fcn.00489df0
mov byte [ebp - 4], 0xa
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
lea ecx, [ebp + 0x30]
call fcn.004a46d0
add esp, 0x10
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x2c]
call fcn.0046a0f0
mov byte [ebp - 4], 0xa
lea ecx, [ebp + 0x30]
call fcn.004608f0
lea eax, [ebp + 0x2c]
push eax
mov esi, dword [ebp + 0x20]
mov ecx, esi
call fcn.0046a0f0
mov byte [ebp - 4], 9
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
jmp 0x488ddc
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x488e70
mov eax, dword [0x514f70]
mov dword [ebp + 0x20], eax
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x30]
push eax
mov ecx, 0x514f70
call fcn.004693b0
mov eax, dword [eax]
cmp eax, dword [ebp + 0x20]
jne 0x488f0c
push 0
push dword [ebp + 0x2c]
push 0
call fcn.00494b30
test al, al
jne 0x488f0c
mov eax, dword [ebp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x488e70
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x30]
push eax
mov ecx, 0x514f7c
call fcn.004693b0
mov eax, dword [0x514f7c]
mov dword [ebp + 0x24], eax
mov edx, dword [ebp + 0x30]
cmp edx, eax
je 0x488e70
mov edx, dword [edx + 0x14]
lea ecx, [ebp + 0x30]
call fcn.004951f0
mov byte [ebp - 4], 0xc
push dword [eax]
mov ecx, edi
call fcn.0048a5f0
mov byte [ebp - 4], 9
lea ecx, [ebp + 0x30]
call fcn.004608f0
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x48904f
lea ecx, [ebp - 0xa4]
call fcn.00486dc0
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x74]
call fcn.00497790
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x90], eax
xor esi, esi
mov dword [ebp - 0x44], esi
cmp esi, dword [ebp - 0x50]
jae 0x488f23
lea ecx, [ebp - 0x34]
call fcn.00486d40
mov byte [ebp - 4], 0xf
push esi
lea ecx, [ebp - 0x74]
call fcn.004975a0
mov dword [ebp - 0x30], eax
push esi
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0x74]
call fcn.004975c0
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x34]
call fcn.0046a0f0
mov byte [ebp - 4], 0xf
lea ecx, [ebp + 0x20]
call fcn.004608f0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x8c]
call fcn.00489c80
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x34]
call fcn.0046c470
inc esi
jmp 0x488ea8
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4890ab
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
jmp 0x4890ab
lea eax, [ebp - 0xa4]
push eax
push ecx
lea ecx, [ebp - 0x74]
call fcn.00497840
mov dword [ebp - 4], 0xd
jmp 0x488f4f
lea ecx, [ebp + 0x30]
call fcn.00460a60
mov byte [ebp - 4], 0x12
mov eax, dword [0x515018]
test eax, eax
je 0x488f77
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x515018], 0
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp - 0xa4]
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x2c]
call fcn.004a19b0
mov byte [ebp - 4], 0x13
push eax
mov ecx, edi
call fcn.0046a0f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0xc]
call fcn.004608f0
push 0xf
lea eax, [ebp + 0x20]
push eax
call fcn.0048bb10
mov byte [ebp - 4], 0x14
mov edx, dword [eax]
lea ecx, [ebp + 0xc]
call fcn.00495060
mov byte [ebp - 4], 0x15
mov edx, eax
mov ecx, edi
call fcn.00469ae0
mov bl, al
mov byte [ebp - 4], 0x14
lea ecx, [ebp + 0xc]
call fcn.004608f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0x20]
call fcn.004608f0
test bl, bl
je 0x489034
push dword [ebp + 0x18]
lea ecx, [ebp + 0xc]
call fcn.00460950
mov byte [ebp - 4], 0x16
lea ecx, [ebp + 0xc]
call fcn.004604b0
push 0
push str.c:windows_
lea ecx, [ebp + 0xc]
call fcn.00469a70
test eax, eax
jne 0x489028
push 0x4edd1d
mov ecx, edi
call fcn.0046a0b0
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0xc]
call fcn.004608f0
mov byte [ebp - 4], 0xd
lea ecx, [ebp + 0x30]
call fcn.004608f0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xa4]
call fcn.00489100
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x4890ab
sub esp, 8
mov ecx, edi
call fcn.0048a410
push 0
push 0x4eed30
mov ecx, edi
call fcn.00469fc0
cmp eax, 0xffffffff
je 0x4890ab
inc eax
push eax
push 0x4eed30
mov ecx, edi
call fcn.00469fc0
cmp eax, 0xffffffff
je 0x4890ab
push eax
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
call fcn.00489f50
mov byte [ebp - 4], 0x17
push eax
mov ecx, edi
call fcn.0046a0f0
mov byte [ebp - 4], 9
lea ecx, [ebp + 0xc]
call fcn.004608f0
mov byte [ebp - 4], 5
lea ecx, [ebp + 0x2c]
call fcn.004608f0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x74]
call fcn.004973f0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00498490
mov dword [ebp - 4], 0xffffffff
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c