Function at 0x460068
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x580376
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x67d978]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
push edi
mov eax, dword [0x67d978]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [edi + 4], bl
mov dword [esp + 0x28], eax
je 0x4600ec
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
sub eax, dword [edi + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x493e0
jb 0x4600ec
call fcn.0045fcaf
mov dword [edi + 0x24], esi
lea eax, [edi + 0x9c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x34], bl
call fcn.004072ef
mov dword [esp + 0x130], ebx
cmp byte [edi + 0x48], bl
jne 0x4603cd
mov eax, dword [edi]
cmp eax, 2
je 0x4603cd
mov ecx, dword [ebp + 8]
cmp ecx, dword [edi + 0x28]
mov dword [esp + 0x20], eax
setge cl
cmp cl, bl
je 0x460136
lea eax, [esp + 0x20]
jmp 0x46013e
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x1c]
cmp byte [edi + 4], bl
mov eax, dword [eax]
sete cl
cmp cl, bl
mov dword [esp + 0x1c], eax
je 0x460154
lea eax, [esp + 0x1c]
jmp 0x46015c
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x20]
mov eax, dword [eax]
dec eax
neg eax
sbb eax, eax
not eax
test eax, fcn.00491f48
je 0x46047a
cmp byte [ebp + 0x18], bl
jne 0x46017b
push edi
call fcn.004604e8
lea eax, [esp + 0x54]
push eax
call fcn.004208dd
mov byte [esp + 0x130], 5
cmp byte [ebp + 0x10], bl
je 0x4601a7
push dword [esp + 0x24]
lea eax, [esp + 0x60]
push eax
call fcn.00410a18
pop ecx
pop ecx
jmp 0x4602e3
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x14], ebx
jne 0x4601cb
lea eax, [esp + 0x38]
push eax
call fcn.00461fc1
pop ecx
mov byte [esp + 0x130], 6
mov dword [esp + 0x18], 1
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00410a18
pop ecx
pop ecx
mov dword [esp + 0x130], 5
test byte [esp + 0x18], 1
je 0x4601fb
and dword [esp + 0x18], 0xfffffffe
push ebx
push 1
lea ecx, [esp + 0x40]
call fcn.0041382c
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
push 6
lea eax, [esp + eax + 0x58]
pop esi
mov dword [eax + 0x18], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00410520
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
lea eax, [esp + eax + 0x54]
mov dword [eax + 0x18], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00410520
movzx eax, word [edi + 0x4a]
push eax
push ecx
lea eax, [esp + 0x64]
push 0x20
push eax
call fcn.004095f5
add esp, 0xc
push eax
call fcn.0043f162
pop ecx
pop ecx
push dword [edi + 0xb4]
lea eax, [esp + 0x60]
push eax
call fcn.00410520
mov eax, dword [ebp + 8]
sub eax, 0xc8
je 0x460296
sub eax, 0x64
je 0x46028f
sub eax, 0x64
lea eax, [esp + 0x5c]
je 0x460288
push 0x624418
jmp 0x46029f
push 0x624400
jmp 0x46029f
push 0x624408
jmp 0x46029b
push 0x624410
lea eax, [esp + 0x60]
push eax
call fcn.00410b84
pop ecx
pop ecx
push dword [esp + 0x24]
lea eax, [esp + 0x60]
push eax
call fcn.00410a18
cmp dword [ebp + 8], 0x12c
pop ecx
pop ecx
jl 0x4602e3
cmp dword [esp + 0x28], ebx
je 0x4602e3
push dword [esp + 0x28]
lea eax, [esp + 0x60]
push ecx
push str.__Errorcode
push eax
call fcn.00410b84
add esp, 0xc
push eax
call fcn.00410520
lea eax, [esp + 0x5c]
push eax
call fcn.0045f498
pop ecx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.004592ab
mov byte [esp + 0x130], 7
push eax
lea esi, [edi + 0x68]
push esi
call fcn.00460aee
mov byte [esp + 0x17], al
mov byte [esp + 0x130], 5
push ebx
push 1
lea ecx, [esp + 0x40]
call fcn.0041382c
cmp byte [esp + 0x17], bl
jne 0x46037b
call fcn.00460a61
call fcn.0045fcaf
mov eax, dword [edi]
dec eax
neg eax
sbb eax, eax
not eax
test eax, fcn.00491f48
je 0x4603a9
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.004592ab
mov byte [esp + 0x130], 8
push eax
push esi
call fcn.00460aee
mov byte [esp + 0x130], 5
push ebx
push 1
lea ecx, [esp + 0x40]
call fcn.0041382c
jmp 0x4603a9
push dword [edi + 0xc0]
call fcn.0046f508
test al, al
jne 0x4603a9
push ebx
push dword [edi + 0x84]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x100000
jbe 0x4603a9
mov ecx, dword [edi + 0xc0]
call fcn.00460db8
mov byte [esp + 0x130], bl
lea ecx, [esp + 0xa8]
call fcn.00420973
lea ecx, [esp + 0xa8]
call fcn.00414b24
jmp 0x46047a
lea ecx, [esp + 0xe0]
call fcn.00415aa6
mov byte [esp + 0x130], 1
lea ecx, [esp + 0xfc]
call fcn.00415aa6
mov byte [esp + 0x130], 3
mov eax, dword [ebp + 8]
push 0xffffffffffffffff
push ebx
push dword [esp + 0x2c]
lea ecx, [esp + 0xec]
mov dword [esp + 0xe8], eax
call fcn.00413799
lea eax, [esp + 0x38]
push eax
call fcn.00461fc1
pop ecx
mov byte [esp + 0x130], 4
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x108]
call fcn.00413799
mov byte [esp + 0x130], 3
push ebx
push 1
lea ecx, [esp + 0x40]
call fcn.0041382c
mov al, byte [ebp + 0x10]
mov byte [esp + 0x118], al
lea eax, [esp + 0xdc]
push eax
lea esi, [edi + 0x8c]
call fcn.00460b7a
mov byte [esp + 0x130], bl
lea eax, [esp + 0xdc]
push eax
call fcn.004604b1
or dword [esp + 0x130], 0xffffffff
lea eax, [esp + 0x2c]
call fcn.00406b4a
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.00536476
mov esp, ebp
pop ebp
ret 0x14