Function at 0x1400f0020
Capabilities:
Get file size

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xc8
mov rax, qword [0x1402fa010]
xor rax, rsp
mov qword [rbp - 1], rax
mov r12, r9
mov r13, r8
mov r15, rdx
mov rsi, rcx
mov qword [rbp - 0x41], rdx
mov rbx, qword [rbp + 0x7f]
mov rcx, qword [rcx + 0x20]
test rcx, rcx
je 0x1400f0069
call fcn.1401f3fac
xor r14d, r14d
mov qword [rsi + 0x20], r14
lea rcx, [rsi + 0x30]
call fcn.1400eee90
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1400f008f
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x140038716.0]
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], r14
movaps xmm0, xmmword [r12]
movdqa xmmword [rbp - 0x31], xmm0
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
lea rdx, [rbp - 0x31]
mov rax, qword [rax + 0x130]
call qword [case.0x140038716.0]
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov rdx, rbx
mov rax, qword [rax + 0x118]
call qword [case.0x140038716.0]
mov rdi, 0xffffffffffffffff
mov qword [rbp - 0x69], rdi
lea rax, [rbp - 0x61]
mov qword [rbp - 9], rax
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x1400f0433
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rbp - 0x61], rax
lea rbx, [0x140262520]
mov rdx, rbx
lea rcx, [rbp - 0x61]
call fcn.140018bd0
test al, al
jne 0x1400f013b
mov r8, rdi
inc r8
cmp word [rbx + r8*2], 0
jne 0x1400f0123
mov rdx, rbx
lea rcx, [rbp - 0x61]
call fcn.140018f70
nop
mov byte [rbp - 0x59], 0
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [r15]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x1400f0170
mov rax, rdi
jmp 0x1400f0192
lea rdx, [rbp - 9]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ebx, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rdi
test ebx, ebx
cmovne rax, qword [rbp - 9]
mov qword [rbp - 0x69], rax
call fcn.140163500
mov rdx, rax
xor r9d, r9d
lea r8, [rbp - 0x69]
mov rcx, qword [rsi + 8]
call fcn.1400f14c0
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r8, r13
mov rdx, qword [r15]
mov rax, qword [rax + 0x20]
call qword [case.0x140038716.0]
mov r14d, eax
mov rcx, qword [rsi + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x120]
call qword [case.0x140038716.0]
mov dword [rsi + 0xb0], eax
mov rcx, qword [rsi + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x128]
call qword [case.0x140038716.0]
mov dword [rsi + 0xb4], eax
call fcn.1401285c0
xor r13d, r13d
mov dword [rax + 0xcc], r13d
cmp r14d, 1
jne 0x1400f03c2
cmp dword [r12 + 4], 0xffffffff
jne 0x1400f03c2
movdqa xmm0, xmmword [0x1402ae720]
movdqu xmmword [rbp - 0x51], xmm0
mov rbx, qword [rsi + 8]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], rax
lea rax, [rbp - 0x21]
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x21], r13
mov qword [rbp - 0x19], r13
mov qword [rbp - 0x11], 1
lea rax, [rbp - 0x21]
mov qword [rsp + 0x20], rax
lea r9, [0x14023f790]
xor edx, edx
mov r8d, r14d
lea rcx, [0x14023f7a0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1400f0286
cmp dword [rbp - 0x11], r13d
setne al
jmp 0x1400f02bd
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0x78]
call qword [case.0x140038716.0]
cmp eax, 0xd
ja 0x1400f0388
mov ecx, 0x2021
bt ecx, eax
jae 0x1400f0388
lea r8, [rbp - 0x51]
mov rdx, rbx
lea rcx, [rbp - 0x21]
call fcn.1400cefb0
test al, al
je 0x1400f0388
mov eax, dword [rbp - 0x49]
cmp eax, 0x5f
jge 0x1400f0300
cmp dword [rbp - 0x45], 0
je 0x1400f02d8
cmp eax, 0x28
jg 0x1400f0300
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f02f3
mov qword [rbp - 0x21], r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
nop
lea rax, [rbp - 0x21]
mov qword [rbp - 0x71], rax
jmp 0x1400f03ab
mov rax, qword [rbx]
mov esi, dword [rbp - 0x4d]
mov edx, esi
mov rcx, rbx
mov rax, qword [rax + 0x198]
call qword [case.0x140038716.0]
nop
test eax, eax
jne 0x1400f0342
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f0338
mov qword [rbp - 0x21], r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
nop
lea rax, [rbp - 0x21]
mov qword [rbp - 0x71], rax
jmp 0x1400f03ab
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f035d
mov qword [rbp - 0x21], r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
nop
lea rax, [rbp - 0x21]
mov qword [rbp - 0x71], rax
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f037b
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
call fcn.1401285c0
mov dword [rax + 0xcc], esi
jmp 0x1400f03c2
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f03a3
mov qword [rbp - 0x21], r13
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
nop
lea rax, [rbp - 0x21]
mov qword [rbp - 0x71], rax
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1400f03c2
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
nop
lea rax, [rbp - 0x61]
mov qword [rbp - 0x71], rax
mov rdx, qword [rbp - 0x61]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400f03ef
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [r15]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400f0410
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
mov eax, r14d
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.1401f3bf0
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140019320
int3