Function at 0x4db8a5
Capabilities:
Get file size

Disassembly:
push 0x34
mov eax, 0x5c8a44
call fcn.00573e11
mov esi, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 8]
xor eax, eax
movzx edx, cx
mov ebx, 0x2000
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], eax
test esi, esi
jne 0x4db8dd
mov ebx, 0x80004003
jmp 0x4dbb6f
cmp edx, 4
jae 0x4dbb6a
mov eax, ecx
mov edi, 0x7f0000
and eax, 0xffff0000
or eax, edi
cmp eax, edi
jne 0x4dbb6a
push 1
test ecx, 0x10000
mov eax, 0x4002100
pop edi
cmovne ebx, eax
test ecx, 0x40000
push 0
pop eax
cmovne edi, eax
mov dword [ebp - 0x14], ebx
test ecx, 0x200000
je 0x4db927
or edi, 4
test ecx, 0x400000
je 0x4db932
or edi, 2
cmp edx, 2
je 0x4db940
or ebx, 0x40000000
mov dword [ebp - 0x14], ebx
push esi
call fcn.00410255
push dword [ebp + 0xc]
push eax
push esi
call fcn.0056d403
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
test ecx, ecx
jne 0x4db96c
mov ebx, 0x8007000e
jmp 0x4dbb6f
mov eax, dword [ebp - 0x10]
and ebx, 0xfff0ffff
push 0
or ebx, 0x100000
push ebx
push dword [eax*8 + 0x64d72c]
mov dword [ebp - 0x28], ebx
push 0
push edi
push dword [eax*8 + 0x64d728]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xffffffff
je 0x4dba02
mov ecx, esi
call fcn.004e1427
mov esi, eax
cmp esi, 0xffffffff
je 0x4dba02
call ebx
and dword [ebp - 0x38], 0
lea ecx, [ebp - 0x38]
and dword [ebp - 0x34], 0
mov dword [ebp - 0x24], eax
call fcn.004e14ec
test al, al
je 0x4db9dc
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x18]
and dword [ebp - 4], 0
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x4db9ec
call fcn.00411ee7
push dword [ebp - 0x24]
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, 0xffffffff
jne 0x4dbabe
call ebx
cmp eax, 0x20
jne 0x4dba9c
test edi, edi
je 0x4dba9c
mov eax, dword [ebp - 0x10]
or edi, 2
push 0
push dword [ebp - 0x28]
push dword [eax*8 + 0x64d72c]
push 0
push edi
push dword [eax*8 + 0x64d728]
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4dba90
mov ecx, esi
call fcn.004e1427
mov esi, eax
cmp esi, 0xffffffff
je 0x4dba90
call ebx
and dword [ebp - 0x38], 0
lea ecx, [ebp - 0x38]
and dword [ebp - 0x34], 0
mov edi, eax
call fcn.004e14ec
test al, al
je 0x4dba76
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x18]
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x4dba89
call fcn.00411ee7
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0x18], 1
cmp esi, 0xffffffff
jne 0x4dbabe
call ebx
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
jne 0x4dbb5c
mov ebx, 0x8000ffff
jmp 0x4dbb6f
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x4dbae1
call ebx
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
jne 0x4dbb5c
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
test edi, edi
jg 0x4dbaf8
jl 0x4dbaf1
test edx, edx
jae 0x4dbaf8
mov ebx, 0x8000ffff
jmp 0x4dbb5c
mov ecx, dword [ebp - 0x1c]
xor eax, eax
xor ebx, ebx
cmp dword [ebp - 0x10], eax
setne al
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x14]
shr eax, 0x1e
and eax, 1
mov dword [ecx + 0x50], edx
test dword [ebp + 8], 0x20000
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x54], edi
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x20], esi
mov esi, eax
jne 0x4dbb44
push ebx
lea edi, [ecx + 0x30]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionEx]
mov ecx, dword [ebp - 0x1c]
mov byte [edi + 0x18], 1
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x5c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0x58], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx + 0x5c], eax
cmp esi, 0xffffffff
je 0x4dbb6f
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4dbb6f
mov ebx, 0x80070057
lea ecx, [ebp - 0x30]
call fcn.00462929
mov eax, ebx
call fcn.00573dda
ret 8