Function at 0x4893b0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce6be
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
push ebx
push esi
push edi
mov eax, dword [0x4ff080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [0x5120f8]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov esi, dword [ebp + 8]
cmp esi, 0xffffffff
je 0x489934
push esi
call fcn.00497430
test al, al
jne 0x489934
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 0x489934
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x489438
test ebx, ebx
je 0x489934
test eax, eax
ja 0x489934
jb 0x48944c
cmp ebx, 0x3200000
ja 0x489934
mov dword [ebp - 4], 0
push ebx
sub esp, 8
mov edx, esi
lea ecx, [ebp - 0x14]
call fcn.00496750
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.00469540
test al, al
jne 0x489921
mov eax, dword [ebp - 0x14]
push 0
push dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x9c]
call fcn.00497570
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9c]
call fcn.004976b0
cmp eax, 1
jne 0x489912
mov eax, dword [ebp - 0x74]
cmp eax, 1
je 0x4894b6
cmp eax, 2
jne 0x489912
lea ecx, [ebp + 8]
call fcn.00460ac0
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.00497920
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x48956a
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x48956a
lea eax, [esi + edi]
xor ecx, ecx
cmp ecx, dword [ebp - 0x2c]
ja 0x48956a
jb 0x48950d
cmp eax, ebx
ja 0x48956a
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.00489ee0
mov byte [ebp - 4], 4
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
lea ecx, [ebp - 0x1c]
call fcn.004a4900
add esp, 0x10
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp + 8]
call fcn.0046a1d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00460950
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 0x4895aa
mov esi, dword [0x511fd0]
mov dword [ebp - 0x44], esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x511fd0
call fcn.00469490
cmp dword [eax], esi
jne 0x489906
push 0
push dword [ebp + 8]
push 0
call fcn.00494d40
test al, al
jne 0x489906
lea ecx, [ebp - 0xfc]
call fcn.00486eb0
mov byte [ebp - 4], 6
lea edx, [ebp - 0xd0]
lea ecx, [ebp - 0x40]
call fcn.00495a00
mov byte [ebp - 4], 7
push dword [ebp - 0x40]
push 0
push 0
call fcn.00494d40
test al, al
jne 0x4898eb
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x489632
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x511fdc
call fcn.00469490
mov eax, dword [0x511fdc]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x1c]
cmp edx, eax
je 0x489632
mov edx, dword [edx + 0x14]
lea ecx, [ebp - 0x20]
call fcn.00495400
mov byte [ebp - 4], 8
push dword [eax]
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.0048a6e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x20]
call fcn.00460950
jmp 0x489635
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x489675
mov esi, dword [0x511fd0]
mov dword [ebp - 0x48], esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x511fd0
call fcn.00469490
cmp dword [eax], esi
jne 0x4898eb
push 0
push dword [ebp + 8]
push 0
call fcn.00494d40
test al, al
jne 0x4898eb
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x4896c3
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x20]
push eax
mov ecx, 0x511fdc
call fcn.00469490
mov eax, dword [0x511fdc]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x20]
cmp edx, eax
je 0x4896c3
mov edx, dword [edx + 0x14]
lea ecx, [ebp - 0x5c]
call fcn.00495400
mov byte [ebp - 4], 9
push dword [eax]
mov ecx, edi
call fcn.0048a6e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x5c]
call fcn.00460950
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x489899
lea ecx, [ebp - 0xcc]
call fcn.00486eb0
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x9c]
call fcn.004979c0
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 0x489768
lea ecx, [ebp - 0x58]
call fcn.00486e30
mov byte [ebp - 4], 0xc
push esi
lea ecx, [ebp - 0x9c]
call fcn.004977d0
mov dword [ebp - 0x54], eax
push esi
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x9c]
call fcn.004977f0
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x58]
call fcn.0046a1d0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x44]
call fcn.00460950
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xb4]
call fcn.00489d70
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x58]
call fcn.0046c390
inc esi
jmp 0x4896fe
lea eax, [ebp - 0xcc]
push eax
push ecx
lea ecx, [ebp - 0x9c]
call fcn.00497a70
mov dword [ebp - 4], 0xa
mov esi, dword [ebp - 0x24]
jmp 0x48979d
lea ecx, [ebp - 0x3c]
call fcn.00460ac0
mov byte [ebp - 4], 0xf
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4897c0
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.004a1be0
mov byte [ebp - 4], 0x10
push eax
mov ecx, edi
call fcn.0046a1d0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x18]
call fcn.00460950
push 0xf
lea eax, [ebp - 0x24]
push eax
call fcn.0048bc00
mov byte [ebp - 4], 0x11
mov edx, dword [eax]
lea ecx, [ebp - 0x28]
call fcn.00495270
mov byte [ebp - 4], 0x12
mov edx, eax
mov ecx, edi
call fcn.00469bc0
mov bl, al
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x28]
call fcn.00460950
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x24]
call fcn.00460950
test bl, bl
je 0x48987e
push dword [ebp + 0x18]
lea ecx, [ebp + 0xc]
call fcn.00460a60
mov byte [ebp - 4], 0x13
lea ecx, [ebp + 0xc]
call fcn.00460510
push 0
push str.c:windows_
lea ecx, [ebp + 0xc]
call fcn.00469b50
test eax, eax
jne 0x489872
push 0x4ea36d
mov ecx, edi
call fcn.0046a190
mov byte [ebp - 4], 0xf
lea ecx, [ebp + 0xc]
call fcn.00460950
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3c]
call fcn.00460950
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xcc]
call fcn.004891f0
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x4898eb
push 0
push 0x4eb380
mov ecx, edi
call fcn.0046a0a0
cmp eax, 0xffffffff
je 0x4898eb
inc eax
push eax
push 0x4eb380
mov ecx, edi
call fcn.0046a0a0
cmp eax, 0xffffffff
je 0x4898eb
push eax
lea eax, [ebp + 0x18]
push eax
mov ecx, edi
call fcn.0048a040
mov byte [ebp - 4], 0x14
push eax
mov ecx, edi
call fcn.0046a1d0
mov byte [ebp - 4], 7
lea ecx, [ebp + 0x18]
call fcn.00460950
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.00460950
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xfc]
call fcn.004891f0
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.00460950
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x9c]
call fcn.00497620
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00469560
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