Function at 0x1004c860
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a1e70
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38c
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
lea edx, [ebp - 0x394]
call fcn.1004d830
mov esi, eax
mov dword [ebp - 0x14], esi
cmp esi, 0xffffffff
jne 0x1004c8c1
lea edx, [ebp - 0x394]
mov ecx, ebx
call fcn.1004d830
mov dword [ebp - 0x14], eax
cmp eax, esi
jne 0x1004c8c1
or eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
lea ecx, [ebp - 0x388]
mov word [edi + 0xc], ax
call fcn.1004c7a0
lea ecx, [ebp - 0x390]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
call fcn.1004c7a0
lea ecx, [ebp - 0x380]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
call fcn.1004c7a0
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
cmp word [ebx + 2], 0x3a
jne 0x1004c90c
movzx ecx, word [ebx]
and ecx, 0xffffffdf
sub ecx, 0x41
jmp 0x1004c90e
xor ecx, ecx
mov edx, dword [ebp - 0x394]
xor eax, eax
mov word [edi + 4], ax
mov eax, edx
and al, 0x10
mov dword [edi], ecx
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xffffc000
add eax, 0x81b6
mov word [edi + 6], ax
mov eax, 1
mov dword [edi + 0x10], ecx
mov ecx, dword [ebp + 8]
mov word [edi + 8], ax
test ecx, ecx
je 0x1004c94f
xor edx, edx
jmp 0x1004ca9d
test edx, 0x400
je 0x1004ca81
cmp dword [ebp - 0x370], 0xa000000c
jne 0x1004ca81
cmp dword [ebp - 0x378], 0
jne 0x1004ca81
cmp dword [ebp - 0x374], 0
jne 0x1004ca81
push 0x11c
lea eax, [ebp - 0x144]
push 0
push eax
call fcn.1007cff0
mov esi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x144], 0x11c
mov dword [ebp - 0x140], 6
mov dword [ebp - 0x13c], 0
push 3
push 2
push eax
push eax
mov dword [ebp - 0x30], eax
call esi
push 3
push 1
push edx
push eax
call esi
push 3
push 0x20
push edx
push eax
call esi
push 3
push 0x10
push edx
push eax
call esi
push edx
push eax
push 0x33
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x1004ca81
push 0x104
push ebx
lea ecx, [ebp - 0x24]
call fcn.1004d280
mov esi, dword [ebp - 0x20]
mov eax, esi
test esi, esi
jne 0x1004ca17
mov eax, dword [ebp - 0x24]
push 0
push 0
push 3
push 0
push 7
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 4], 0
test esi, esi
je 0x1004ca43
push esi
call fcn.10086818
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp ebx, 0xffffffff
je 0x1004ca81
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1004ca6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1004ca7a
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x378], ecx
mov dword [ebp - 0x374], esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x374]
xor edx, edx
mov eax, dword [ebp - 0x378]
add ecx, edx
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], eax
adc edx, eax
push dword [ebp - 0x14]
mov dword [edi + 0x18], ecx
xor eax, eax
mov dword [edi + 0x1c], edx
mov word [edi + 0xa], ax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret