Function at 0x140116900
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1401d4770]
xor rax, rsp
mov qword [rbp - 8], rax
mov ebx, dword [rcx + 0x168]
mov rdi, rcx
bt ebx, 0x1d
jae 0x140116956
and qword [rbp - 0x28], 0
mov eax, ebx
and al, 3
mov dword [rbp - 0x40], ebx
cmp al, 1
jne 0x14011694b
and ebx, 0xfffffffe
or ebx, 2
test bl, 8
je 0x140116956
and ebx, 0xfffffff6
or ebx, 2
xor ecx, ecx
call fcn.14015f200
mov ecx, eax
mov esi, eax
call fcn.14015f200
mov edx, ebx
and edx, 3
je 0x140116989
sub edx, 1
je 0x140116982
cmp edx, 1
jne 0x140116ab3
mov ecx, 0x12019f
jmp 0x14011698e
mov ecx, 0x120116
jmp 0x14011698e
mov ecx, 0x120089
test bl, 8
je 0x140116999
and ecx, 0xfffffffd
or ecx, 4
mov eax, ebx
mov r11d, 0x10000000
and eax, r11d
mov edx, 0x700
neg eax
mov r14d, 0x100
mov eax, ebx
sbb r10d, r10d
not r10d
and r10d, 7
and eax, edx
je 0x140116a11
cmp eax, r14d
je 0x140116a09
cmp eax, 0x200
je 0x140116a01
cmp eax, 0x300
je 0x1401169f9
cmp eax, 0x400
je 0x140116a11
cmp eax, 0x500
je 0x1401169f1
cmp eax, 0x600
je 0x140116a01
cmp eax, edx
jne 0x140116ab3
mov r9d, 1
jmp 0x140116a17
mov r9d, 2
jmp 0x140116a17
mov r9d, 5
jmp 0x140116a17
mov r9d, 4
jmp 0x140116a17
mov r9d, 3
mov edx, 0x80
test r14d, ebx
je 0x140116a34
not sil
lea eax, [rdx + 1]
and sil, byte [rdi + 0x158]
test dl, sil
cmove edx, eax
mov r8d, ecx
mov eax, ebx
bts r8d, 0x10
and eax, 0x40
mov eax, ebx
cmove r8d, ecx
mov ecx, edx
or ecx, 0x4000100
bt ebx, 6
cmovae ecx, edx
mov edx, ecx
or edx, r14d
and eax, 0x1000
mov eax, ebx
cmove edx, ecx
and eax, 0x30
je 0x140116a7d
cmp eax, 0x10
je 0x140116a7a
cmp eax, 0x20
jne 0x140116ab3
bts edx, 0x1b
jmp 0x140116a7d
or edx, r11d
mov r11d, 0x2000000
mov ecx, r8d
test r11d, ebx
je 0x140116a9e
test r8b, 4
je 0x140116a9a
test r8b, 2
je 0x140116ab3
and ecx, 0xfffffffb
bts edx, 0x1d
mov eax, ebx
and eax, 0xc000000
je 0x140116ad1
add eax, 0xfc000000
test eax, 0xfbffffff
je 0x140116acd
mov qword [rdi + 0x88], 0xfffffffffffff019
mov dword [rdi + 0x14c], 0x57
jmp 0x140116c7c
bts edx, 0x1f
and qword [rsp + 0x30], 0
or edx, r11d
mov dword [rsp + 0x28], edx
mov r8d, r10d
mov dword [rsp + 0x20], r9d
mov edx, ecx
mov rcx, qword [rdi + 0x150]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140116b47
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x50
jne 0x140116b26
and ebx, 0x500
cmp ebx, r14d
jne 0x140116b26
mov dword [rdi + 0x14c], eax
mov rax, 0xfffffffffffff01c
jmp 0x140116b3b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x14c], eax
call fcn.14011bfd0
cdqe
mov qword [rdi + 0x88], rax
jmp 0x140116c7c
mov edx, ebx
mov rcx, rsi
call fcn.1401566a0
movsxd r14, eax
test eax, eax
jns 0x140116bba
call fcn.140150770
cmp dword [rax], 0x18
jne 0x140116b75
mov dword [rdi + 0x14c], 4
mov rax, 0xfffffffffffff01e
jmp 0x140116ba5
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x140116b8f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rdi + 0x14c], eax
mov ecx, eax
jmp 0x140116b9e
mov dword [rdi + 0x14c], 0xfffff002
mov ecx, 0xfffff002
call fcn.14011bfd0
cdqe
mov qword [rdi + 0x88], rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140116c7c
bt ebx, 0x1d
jae 0x140116c75
mov r9d, 0x18
lea r8, [rbp - 0x20]
mov rcx, rsi
lea edx, [r9 - 0x17]
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
test eax, eax
jne 0x140116bfe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x14c], eax
call fcn.14011bfd0
movsxd rcx, eax
mov qword [rdi + 0x88], rcx
jmp 0x140116bac
mov al, byte [rbp - 0xb]
mov byte [rbp - 0x3c], al
test al, al
je 0x140116c0f
and qword [rbp - 0x30], 0
jmp 0x140116c27
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140116bdf
cmp qword [rbp - 0x30], 0
jne 0x140116c2e
or qword [rbp - 0x38], 0xffffffffffffffff
jmp 0x140116c69
mov eax, dword [rbp - 0x40]
mov rcx, rsi
mov r9d, dword [rbp - 0x2c]
and al, 3
neg al
mov eax, dword [rbp - 0x30]
sbb r8d, r8d
and qword [rsp + 0x28], 0
and r8d, 2
mov dword [rsp + 0x20], eax
add r8d, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov qword [rbp - 0x38], rax
test rax, rax
je 0x140116bdf
lea rdx, [rbp - 0x40]
mov ecx, r14d
call fcn.140118c90
mov qword [rdi + 0x88], r14
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140140c60
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret