Function at 0x4892c0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf29e
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
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 eax, dword [0x515098]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov esi, dword [ebp + 8]
cmp esi, 0xffffffff
je 0x489844
push esi
call fcn.00497200
test al, al
jne 0x489844
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x30]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x489844
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x489348
test ebx, ebx
je 0x489844
test eax, eax
ja 0x489844
jb 0x48935c
cmp ebx, 0x3200000
ja 0x489844
mov dword [ebp - 4], 0
push ebx
sub esp, 8
mov edx, esi
lea ecx, [ebp - 0x14]
call fcn.00496530
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.00469460
test al, al
jne 0x489831
mov eax, dword [ebp - 0x14]
push 0
push dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x9c]
call fcn.00497340
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9c]
call fcn.00497480
cmp eax, 1
jne 0x489822
mov eax, dword [ebp - 0x74]
cmp eax, 1
je 0x4893c6
cmp eax, 2
jne 0x489822
lea ecx, [ebp + 8]
call fcn.00460a60
mov byte [ebp - 4], 3
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x68], xmm0
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x9c]
call fcn.004976f0
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x48947a
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x48947a
lea eax, [esi + edi]
xor ecx, ecx
cmp ecx, dword [ebp - 0x2c]
ja 0x48947a
jb 0x48941d
cmp eax, ebx
ja 0x48947a
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, 0x100000
cmp esi, eax
cmovb eax, esi
push eax
push edi
push ecx
lea ecx, [ebp - 0x50]
call fcn.00489df0
mov byte [ebp - 4], 4
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
lea ecx, [ebp - 0x1c]
call fcn.004a46d0
add esp, 0x10
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp + 8]
call fcn.0046a0f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.004608f0
mov byte [ebp - 4], 3
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x4894ba
mov esi, dword [0x514f70]
mov dword [ebp - 0x44], esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x514f70
call fcn.004693b0
cmp dword [eax], esi
jne 0x489816
push 0
push dword [ebp + 8]
push 0
call fcn.00494b30
test al, al
jne 0x489816
lea ecx, [ebp - 0xfc]
call fcn.00486dc0
mov byte [ebp - 4], 6
lea edx, [ebp - 0xd0]
lea ecx, [ebp - 0x40]
call fcn.004957f0
mov byte [ebp - 4], 7
push dword [ebp - 0x40]
push 0
push 0
call fcn.00494b30
test al, al
jne 0x4897fb
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x489542
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x514f7c
call fcn.004693b0
mov eax, dword [0x514f7c]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x1c]
cmp edx, eax
je 0x489542
mov edx, dword [edx + 0x14]
lea ecx, [ebp - 0x20]
call fcn.004951f0
mov byte [ebp - 4], 8
push dword [eax]
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.0048a5f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x20]
call fcn.004608f0
jmp 0x489545
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x489585
mov esi, dword [0x514f70]
mov dword [ebp - 0x48], esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x514f70
call fcn.004693b0
cmp dword [eax], esi
jne 0x4897fb
push 0
push dword [ebp + 8]
push 0
call fcn.00494b30
test al, al
jne 0x4897fb
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x4895d3
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x20]
push eax
mov ecx, 0x514f7c
call fcn.004693b0
mov eax, dword [0x514f7c]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x20]
cmp edx, eax
je 0x4895d3
mov edx, dword [edx + 0x14]
lea ecx, [ebp - 0x5c]
call fcn.004951f0
mov byte [ebp - 4], 9
push dword [eax]
mov ecx, edi
call fcn.0048a5f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x5c]
call fcn.004608f0
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4897a9
lea ecx, [ebp - 0xcc]
call fcn.00486dc0
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x9c]
call fcn.00497790
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xb8], eax
xor esi, esi
mov dword [ebp - 0x60], esi
cmp esi, dword [ebp - 0x78]
jae 0x489678
lea ecx, [ebp - 0x58]
call fcn.00486d40
mov byte [ebp - 4], 0xc
push esi
lea ecx, [ebp - 0x9c]
call fcn.004975a0
mov dword [ebp - 0x54], eax
push esi
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x9c]
call fcn.004975c0
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x58]
call fcn.0046a0f0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x44]
call fcn.004608f0
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xb4]
call fcn.00489c80
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x58]
call fcn.0046c470
inc esi
jmp 0x48960e
lea eax, [ebp - 0xcc]
push eax
push ecx
lea ecx, [ebp - 0x9c]
call fcn.00497840
mov dword [ebp - 4], 0xa
mov esi, dword [ebp - 0x24]
jmp 0x4896ad
lea ecx, [ebp - 0x3c]
call fcn.00460a60
mov byte [ebp - 4], 0xf
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4896d0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esi + 0x58], 0
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0xcc]
push ecx
push ebx
push dword [eax]
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.004a19b0
mov byte [ebp - 4], 0x10
push eax
mov ecx, edi
call fcn.0046a0f0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x18]
call fcn.004608f0
push 0xf
lea eax, [ebp - 0x24]
push eax
call fcn.0048bb10
mov byte [ebp - 4], 0x11
mov edx, dword [eax]
lea ecx, [ebp - 0x28]
call fcn.00495060
mov byte [ebp - 4], 0x12
mov edx, eax
mov ecx, edi
call fcn.00469ae0
mov bl, al
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x28]
call fcn.004608f0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x24]
call fcn.004608f0
test bl, bl
je 0x48978e
push dword [ebp + 0x18]
lea ecx, [ebp + 0xc]
call fcn.00460a00
mov byte [ebp - 4], 0x13
lea ecx, [ebp + 0xc]
call fcn.004604b0
push 0
push str.c:windows_
lea ecx, [ebp + 0xc]
call fcn.00469a70
test eax, eax
jne 0x489782
push 0x4edd1d
mov ecx, edi
call fcn.0046a0b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp + 0xc]
call fcn.004608f0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3c]
call fcn.004608f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xcc]
call fcn.00489100
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x4897fb
push 0
push 0x4eed30
mov ecx, edi
call fcn.00469fc0
cmp eax, 0xffffffff
je 0x4897fb
inc eax
push eax
push 0x4eed30
mov ecx, edi
call fcn.00469fc0
cmp eax, 0xffffffff
je 0x4897fb
push eax
lea eax, [ebp + 0x18]
push eax
mov ecx, edi
call fcn.00489f50
mov byte [ebp - 4], 0x14
push eax
mov ecx, edi
call fcn.0046a0f0
mov byte [ebp - 4], 7
lea ecx, [ebp + 0x18]
call fcn.004608f0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.004608f0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xfc]
call fcn.00489100
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004608f0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x9c]
call fcn.004973f0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00469480
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 0x14