Function at 0x180072680
Capabilities:
Get file size

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rdi, rdx
mov rbx, rcx
xor r15d, r15d
mov qword [rbp + 0x1f], r15
mov rsi, qword [rcx + 8]
mov qword [rbp + 0x1f], rsi
test rsi, rsi
je 0x1800723ed
mov rcx, qword [rsi]
test rcx, rcx
je 0x1800723ed
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rdx, rdi
mov rcx, rbx
call fcn.1800656f0
cmp dword [rbx + 0x10], 0
je 0x180072636
mov rcx, qword [0x1802963c8]
test rcx, rcx
je 0x180072636
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, rax
test rax, rax
je 0x180072636
xor eax, eax
mov qword [rbp - 1], rax
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], rax
lea r12, vtable.RC::RCBuffer_unsigned_char_.0
mov qword [rbp - 1], r12
mov qword [rbp + 7], r15
mov qword [rbp + 0xf], r15
mov qword [rbp + 0x17], r15
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x18023b310]
movdqu xmmword [rbp - 0x29], xmm1
mov word [rbp - 0x39], r15w
lea r8d, [rax + 3]
lea rdx, [0x180223818]
lea rcx, [rbp - 0x39]
call fcn.1800089e0
nop
mov rax, qword [rdi]
lea r9, [rbp - 0x39]
lea r8, [rbp - 1]
mov edx, dword [rbx + 0x10]
mov rcx, rdi
call qword [rax + 0x30]
movzx edi, al
mov rdx, qword [rbp - 0x21]
cmp rdx, 8
jb 0x1800724d3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x39]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800724ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18007267a
call fcn.1801ccd64
movdqa xmm0, xmmword [0x18023b310]
movdqu xmmword [rbp - 0x29], xmm0
mov word [rbp - 0x39], r15w
test dil, dil
je 0x18007261c
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax]
test rcx, rcx
je 0x18007261c
mov rax, qword [rcx]
mov r8d, dword [rbp + 7]
mov rdx, qword [rbp + 0xf]
call qword [rax + 0x10]
test al, al
je 0x18007261c
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r14d, eax
mov rcx, qword [rbx + 0x20]
mov rcx, qword [rcx]
mov rdx, qword [rcx]
call qword [rdx + 0x28]
mov edi, eax
xor eax, eax
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x11], xmm0
mov rcx, qword [rbx + 0x20]
mov rcx, qword [rcx]
mov r8, qword [rcx]
xor edx, edx
call qword [r8 + 0x40]
mov rdx, rax
lea rcx, [rbp - 0x11]
call fcn.18004f400
test r14d, r14d
je 0x1800725e2
test edi, edi
je 0x1800725e2
cmp qword [rbp - 0x11], 0
je 0x1800725e2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x68]
mov dword [rbx + 0x18], r14d
mov dword [rbx + 0x14], edi
mov rcx, qword [rbx + 0x20]
add rcx, 0x10
lea rdx, [rbp - 0x11]
call fcn.180072e10
mov rdx, qword [rbx + 0x20]
mov rcx, qword [rdx]
mov rax, qword [rcx]
add rdx, 0x28
call qword [rax + 0x30]
nop
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x1800725de
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1800725de
mov rbx, qword [rbp - 9]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1800725de
mov rcx, qword [rbp - 9]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov bl, 1
jmp 0x18007261e
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x18007261c
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18007261c
mov rbx, qword [rbp - 9]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18007261c
mov rcx, qword [rbp - 9]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor bl, bl
mov qword [rbp - 1], r12
mov rcx, qword [rbp + 0xf]
test rcx, rcx
je 0x180072638
call fcn.1801ccd64
mov qword [rbp + 0xf], r15
jmp 0x180072638
xor bl, bl
test rsi, rsi
je 0x18007264f
mov rcx, qword [rsi]
test rcx, rcx
je 0x18007264b
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp + 0x1f], r15
movzx eax, bl
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1801ccd40
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1801d1a7c
nop
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xb0
mov qword [rbp - 0x49], 0xfffffffffffffffe
mov qword [rsp + 0x100], rbx
mov rax, qword [0x18028e088]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rdi, rdx
mov r14, rcx
xor r12d, r12d
mov qword [rbp + 0xf], r12
mov r15, qword [rcx + 8]
mov qword [rbp + 0xf], r15
test r15, r15
je 0x1800726df
mov rcx, qword [r15]
test rcx, rcx
je 0x1800726df
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp qword [rdi + 0x10], 0
je 0x180072a1d
mov rax, qword [r14 + 0x20]
cmp qword [rax], 0
je 0x180072a1d
xor eax, eax
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rax
mov rbx, r12
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x21], r12
cmp qword [rdi + 0x18], 8
jb 0x180072717
mov rdi, qword [rdi]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
jne 0x180072756
call fcn.180004a40
test eax, eax
js 0x180072a0b
jmp 0x18007275d
mov rbx, rax
mov qword [rbp - 0x29], rax
xor eax, eax
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], rax
mov qword [rbp - 1], rax
mov qword [rbp + 7], rax
mov rsi, r12
mov qword [rbp - 0x19], r12
mov qword [rbp - 9], r12
lea rdx, [rbp - 0x3d]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rbp - 0x41], eax
mov r9, qword [rbp - 0x41]
shr r9, 0x20
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], eax
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov rdi, rax
mov qword [rbp - 9], rax
test rax, rax
jne 0x1800727c4
call fcn.180004a40
mov r12d, eax
jmp 0x180072817
mov rax, qword [rbp - 0x41]
mov qword [rbp - 0x11], rax
mov dword [rbp + 7], 4
mov qword [rbp - 1], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MapViewOfFileEx]
mov rsi, rax
mov qword [rbp - 0x19], rax
test rax, rax
jne 0x180072823
call fcn.180004a40
mov r12d, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
mov qword [rbp - 9], rdi
test r12d, r12d
js 0x1800729c7
xor r12d, r12d
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x11]
mov rdx, rsi
call qword [rax + 0x10]
test al, al
je 0x1800729ca
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r13d, eax
mov rcx, qword [r14 + 0x20]
mov rcx, qword [rcx]
mov rdx, qword [rcx]
call qword [rdx + 0x28]
mov r12d, eax
xor eax, eax
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x31], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x39], xmm0
mov rcx, qword [r14 + 0x20]
mov rcx, qword [rcx]
mov r8, qword [rcx]
xor edx, edx
call qword [r8 + 0x40]
mov rdx, rax
lea rcx, [rbp - 0x39]
call fcn.18004f400
test r13d, r13d
je 0x180072981
test r12d, r12d
je 0x180072981
cmp qword [rbp - 0x39], 0
je 0x180072981
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x68]
mov dword [r14 + 0x18], r13d
mov dword [r14 + 0x14], r12d
mov rcx, qword [r14 + 0x20]
add rcx, 0x10
lea rdx, [rbp - 0x39]
call fcn.180072e10
mov rdx, qword [r14 + 0x20]
mov rcx, qword [rdx]
mov rax, qword [rcx]
add rdx, 0x28
call qword [rax + 0x30]
nop
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x180072924
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
sub eax, 1
jne 0x180072918
mov rbx, qword [rbp - 0x31]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x180072918
mov rcx, qword [rbp - 0x31]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rbp - 0x19]
mov rdi, qword [rbp - 9]
mov rbx, qword [rbp - 0x29]
xor r12d, r12d
mov r14d, r12d
test rsi, rsi
je 0x180072948
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x180072944
call fcn.180004a40
mov r14d, eax
mov qword [rbp - 0x19], r12
test rdi, rdi
je 0x180072968
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x180072964
test r14d, r14d
js 0x180072964
call fcn.180004a40
mov qword [rbp - 9], r12
test rbx, rbx
je 0x18007297a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x29], r12
mov bl, 1
jmp 0x180072a1f
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x1800729c7
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rcx + 8], eax
sub eax, 1
jne 0x1800729bb
mov rbx, qword [rbp - 0x31]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1800729bb
mov rcx, qword [rbp - 0x31]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rbp - 0x19]
mov rdi, qword [rbp - 9]
mov rbx, qword [rbp - 0x29]
xor r12d, r12d
mov r14d, r12d
test rsi, rsi
je 0x1800729eb
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x1800729e7
call fcn.180004a40
mov r14d, eax
mov qword [rbp - 0x19], r12
test rdi, rdi
je 0x180072a0b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x180072a07
test r14d, r14d
js 0x180072a07
call fcn.180004a40
mov qword [rbp - 9], r12
test rbx, rbx
je 0x180072a1d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x29], r12
xor bl, bl
test r15, r15
je 0x180072a36
mov rcx, qword [r15]
test rcx, rcx
je 0x180072a32
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp + 0xf], r12
movzx eax, bl
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1801ccd40
mov rbx, qword [rsp + 0x100]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret