Function at 0x488ba0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce580
mov eax, dword fs:[0]
push eax
sub esp, 0x98
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 dword [ebp - 0x2c], 0x512020
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
je 0x4891c6
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 0x4891c6
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 0x488c1f
test ebx, ebx
je 0x4891c6
test esi, esi
ja 0x4891c6
jb 0x488c33
cmp ebx, 0xc800000
ja 0x4891c6
mov dword [ebp - 4], 0
push ecx
push edi
lea ecx, [ebp - 0x40]
call fcn.004985f0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x38], 0
je 0x4891b3
mov byte [ebp - 4], 2
cmp ebx, 0x44
jne 0x488cd1
test esi, esi
jne 0x488cd1
push ebx
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x1c]
call fcn.004a3e50
add esp, 4
mov byte [ebp - 4], 3
push eax
mov esi, dword [ebp + 0x30]
mov ecx, esi
call fcn.0046a1d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c]
call fcn.00460950
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x488cd4
mov ecx, esi
call fcn.0046a040
push esi
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x511f4c
call fcn.00469490
mov ecx, dword [0x511f4c]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp + 0xc]
cmp eax, ecx
je 0x488cd7
add eax, 0x14
push eax
mov ecx, edi
call fcn.0046a1d0
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
jmp 0x488cff
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
jmp 0x488cff
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4891b3
push ecx
push ebx
push dword [ebp - 0x38]
lea ecx, [ebp - 0x74]
call fcn.00497570
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
call fcn.004976b0
cmp eax, 1
jne 0x4891a7
mov eax, dword [ebp + 0x24]
mov byte [eax], 1
mov eax, dword [ebp - 0x4c]
cmp eax, 1
je 0x488d44
cmp eax, 2
jne 0x4891a7
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 0x488dce
test ecx, ecx
ja 0x488dce
jb 0x488d63
cmp ebx, 0x3200000
ja 0x488dce
mov byte [ebp - 4], 6
push ebx
mov edx, dword [ebp - 0x38]
lea ecx, [ebp + 0x2c]
call fcn.004a3e50
add esp, 4
mov byte [ebp - 4], 7
push eax
mov ecx, esi
call fcn.0046a1d0
mov byte [ebp - 4], 6
lea ecx, [ebp + 0x2c]
call fcn.00460950
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x488dc7
mov ecx, esi
call fcn.0046a040
push esi
lea eax, [ebp + 0x2c]
push eax
mov ecx, 0x511f4c
call fcn.00469490
mov ecx, dword [0x511f4c]
mov dword [ebp + 0x30], ecx
mov eax, dword [ebp + 0x2c]
cmp eax, ecx
je 0x488dc7
add eax, 0x14
push eax
mov ecx, edi
call fcn.0046a1d0
mov dword [ebp - 4], 5
mov esi, dword [ebp + 8]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4891a7
lea ecx, [ebp + 0x2c]
call fcn.00460ac0
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.00497920
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x488ec9
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x488ec9
lea eax, [ecx + edx]
mov dword [ebp + 0x30], 0
cmp dword [ebp + 0x30], esi
ja 0x488ec9
jb 0x488e46
cmp eax, ebx
ja 0x488ec9
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.00489ee0
mov byte [ebp - 4], 0xa
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
lea ecx, [ebp + 0x30]
call fcn.004a4900
add esp, 0x10
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x2c]
call fcn.0046a1d0
mov byte [ebp - 4], 0xa
lea ecx, [ebp + 0x30]
call fcn.00460950
lea eax, [ebp + 0x2c]
push eax
mov esi, dword [ebp + 0x20]
mov ecx, esi
call fcn.0046a1d0
mov byte [ebp - 4], 9
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
jmp 0x488ecc
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x488f60
mov eax, dword [0x511fd0]
mov dword [ebp + 0x20], eax
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x30]
push eax
mov ecx, 0x511fd0
call fcn.00469490
mov eax, dword [eax]
cmp eax, dword [ebp + 0x20]
jne 0x488ffc
push 0
push dword [ebp + 0x2c]
push 0
call fcn.00494d40
test al, al
jne 0x488ffc
mov eax, dword [ebp + 0x2c]
cmp dword [eax - 0xc], 0
je 0x488f60
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x30]
push eax
mov ecx, 0x511fdc
call fcn.00469490
mov eax, dword [0x511fdc]
mov dword [ebp + 0x24], eax
mov edx, dword [ebp + 0x30]
cmp edx, eax
je 0x488f60
mov edx, dword [edx + 0x14]
lea ecx, [ebp + 0x30]
call fcn.00495400
mov byte [ebp - 4], 0xc
push dword [eax]
mov ecx, edi
call fcn.0048a6e0
mov byte [ebp - 4], 9
lea ecx, [ebp + 0x30]
call fcn.00460950
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x48913f
lea ecx, [ebp - 0xa4]
call fcn.00486eb0
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x74]
call fcn.004979c0
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 0x489013
lea ecx, [ebp - 0x34]
call fcn.00486e30
mov byte [ebp - 4], 0xf
push esi
lea ecx, [ebp - 0x74]
call fcn.004977d0
mov dword [ebp - 0x30], eax
push esi
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0x74]
call fcn.004977f0
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x34]
call fcn.0046a1d0
mov byte [ebp - 4], 0xf
lea ecx, [ebp + 0x20]
call fcn.00460950
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x8c]
call fcn.00489d70
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x34]
call fcn.0046c390
inc esi
jmp 0x488f98
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x48919b
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
jmp 0x48919b
lea eax, [ebp - 0xa4]
push eax
push ecx
lea ecx, [ebp - 0x74]
call fcn.00497a70
mov dword [ebp - 4], 0xd
jmp 0x48903f
lea ecx, [ebp + 0x30]
call fcn.00460ac0
mov byte [ebp - 4], 0x12
mov eax, dword [0x512078]
test eax, eax
je 0x489067
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x512078], 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.004a1be0
mov byte [ebp - 4], 0x13
push eax
mov ecx, edi
call fcn.0046a1d0
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0xc]
call fcn.00460950
push 0xf
lea eax, [ebp + 0x20]
push eax
call fcn.0048bc00
mov byte [ebp - 4], 0x14
mov edx, dword [eax]
lea ecx, [ebp + 0xc]
call fcn.00495270
mov byte [ebp - 4], 0x15
mov edx, eax
mov ecx, edi
call fcn.00469bc0
mov bl, al
mov byte [ebp - 4], 0x14
lea ecx, [ebp + 0xc]
call fcn.00460950
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0x20]
call fcn.00460950
test bl, bl
je 0x489124
push dword [ebp + 0x18]
lea ecx, [ebp + 0xc]
call fcn.004609b0
mov byte [ebp - 4], 0x16
lea ecx, [ebp + 0xc]
call fcn.00460510
push 0
push str.c:windows_
lea ecx, [ebp + 0xc]
call fcn.00469b50
test eax, eax
jne 0x489118
push 0x4ea36d
mov ecx, edi
call fcn.0046a190
mov byte [ebp - 4], 0x12
lea ecx, [ebp + 0xc]
call fcn.00460950
mov byte [ebp - 4], 0xd
lea ecx, [ebp + 0x30]
call fcn.00460950
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xa4]
call fcn.004891f0
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x48919b
sub esp, 8
mov ecx, edi
call fcn.0048a500
push 0
push 0x4eb380
mov ecx, edi
call fcn.0046a0a0
cmp eax, 0xffffffff
je 0x48919b
inc eax
push eax
push 0x4eb380
mov ecx, edi
call fcn.0046a0a0
cmp eax, 0xffffffff
je 0x48919b
push eax
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
call fcn.0048a040
mov byte [ebp - 4], 0x17
push eax
mov ecx, edi
call fcn.0046a1d0
mov byte [ebp - 4], 9
lea ecx, [ebp + 0xc]
call fcn.00460950
mov byte [ebp - 4], 5
lea ecx, [ebp + 0x2c]
call fcn.00460950
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x74]
call fcn.00497620
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.004986c0
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