Function at 0x10103305
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10155bf4
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x101fe1c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x38], esi
mov ebx, ecx
lea ecx, [ebp - 0x28]
call fcn.1001305d
mov edi, dword [ebp + 8]
and dword [ebp - 0x34], 0
movzx eax, di
mov dword [ebp - 0x2c], eax
test esi, esi
jne 0x1010335a
mov edi, 0x80004003
jmp 0x10103504
mov ecx, edi
call fcn.10103134
test eax, eax
jne 0x1010336f
mov edi, 0x80070057
jmp 0x10103504
mov esi, edi
mov ecx, edi
and esi, 0x10000
neg esi
push dword [ebp - 0x38]
sbb esi, esi
shr ecx, 0x12
not ecx
and esi, 0x4000100
and ecx, 1
add esi, 0x2000
mov edx, ecx
or edx, 4
test edi, 0x200000
cmove edx, ecx
mov ecx, edx
or ecx, 2
test edi, 0x400000
mov edi, esi
cmove ecx, edx
or edi, 0x40000000
cmp dword [ebp - 0x2c], 2
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x28]
cmove edi, esi
mov dword [ebp - 0x3c], edi
call fcn.100278f6
lea ecx, [ebp - 0x28]
call fcn.100278ea
push ecx
mov ecx, dword [ebp - 0x2c]
push edi
push dword [ecx*8 + 0x101b1508]
mov edx, dword [ecx*8 + 0x101b1504]
mov ecx, eax
push 0
push dword [ebp - 0x30]
call fcn.1002d630
mov esi, eax
cmp esi, 0xffffffff
jne 0x1010346c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
jne 0x10103445
cmp dword [ebp - 0x30], 0
je 0x10103445
lea ecx, [ebp - 0x28]
call fcn.100278ea
mov edx, dword [ebp - 0x2c]
push ecx
mov ecx, dword [ebp - 0x30]
push edi
push dword [edx*8 + 0x101b1508]
mov edx, dword [edx*8 + 0x101b1504]
or ecx, 2
push 0
push ecx
mov ecx, eax
call fcn.1002d630
mov esi, eax
mov dword [ebp - 0x34], 1
cmp esi, 0xffffffff
jne 0x1010346c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1010345c
movzx edi, di
or edi, 0x80070000
test edi, edi
jne 0x101034f1
mov edi, 0x8000ffff
jmp 0x10103504
lea eax, [ebp - 0x44]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x10103494
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x10103492
movzx edi, di
or edi, 0x80070000
test edi, edi
jne 0x101034f1
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
test edx, edx
jg 0x101034ab
jl 0x101034a4
test ecx, ecx
jae 0x101034ab
mov edi, 0x8000ffff
jmp 0x101034f1
xor eax, eax
mov dword [ebx + 0x58], ecx
xor edi, edi
mov dword [ebx + 0x5c], edx
cmp dword [ebp - 0x2c], eax
setne al
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x3c]
shr eax, 0x1e
and eax, 1
test dword [ebp + 8], 0x20000
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x14], esi
mov esi, eax
jne 0x101034e5
mov byte [ebx + 0x54], 1
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebx + 0x60]
call fcn.100057ca
cmp esi, 0xffffffff
je 0x10103504
push esi
mov dword [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x28]
call fcn.100093c1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10033218
leave
ret 8