Function at 0x1400378f0
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0xc0], rbx
mov r15, r8
mov r14, rdx
mov r13, rcx
xor esi, esi
mov qword [r8], rsi
mov rax, qword [0x140104018]
mov qword [rbp - 0x40], rax
mov rbx, qword [rdx]
cmp dword [rbx - 0xc], esi
jl 0x140037945
mov qword [rbp - 0x38], rbx
lock inc dword [rbx - 0xc]
jmp 0x140037969
mov qword [rbp - 0x38], rax
test rbx, rbx
jne 0x140037952
mov eax, esi
jmp 0x14003795b
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rbp - 0x38]
call fcn.140001a10
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x38]
mov rcx, r13
call fcn.140038220
test eax, eax
jne 0x1400379d0
mov rcx, qword [rbp - 0x40]
add rcx, 0xfffffffffffffff4
mov esi, 0xffffffff
cmp rcx, qword [0x140104010]
je 0x1400379a4
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x1400379a4
call fcn.1400bf5e4
nop
mov rax, qword [r14]
add rax, 0xfffffffffffffff4
cmp rax, qword [0x140104010]
je 0x1400379c9
lock xadd dword [rax], esi
sub esi, 1
jg 0x1400379c9
mov rcx, qword [r14]
sub rcx, 0xc
call fcn.1400bf5e4
xor eax, eax
jmp 0x140037cd0
mov rbx, qword [rbp - 0x40]
movsxd rax, dword [rbx - 8]
add qword [r15], rax
mov r8, r14
lea rdx, [rbp - 0x30]
lea rcx, [r13 + 0x18]
call fcn.14000e8f0
mov rcx, qword [rbp - 0x30]
cmp rcx, qword [r13 + 0x18]
jne 0x1400379fb
lea rcx, [rbx - 0xc]
jmp 0x140037985
add rcx, 0x28
xor edx, edx
call fcn.140001c10
mov rbx, rax
mov rcx, qword [0x140104018]
mov qword [rbp + 0x58], rcx
test rax, rax
je 0x140037a6e
mov rcx, rax
shr rcx, 0x10
test cx, cx
jne 0x140037a33
movzx edx, bx
lea rcx, [rbp + 0x58]
call fcn.140001ff0
jmp 0x140037a6e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
test eax, eax
je 0x140037a6e
mov edx, edi
lea rcx, [rbp + 0x58]
call fcn.140001970
test eax, eax
je 0x140037a6e
mov r9, rdi
add r9, r9
lea eax, [rdi + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rbx
mov rcx, qword [rbp + 0x58]
call fcn.1400029b0
nop
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rbx, qword [rbp + 0x58]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140037acc
lea rcx, [rbx - 0xc]
mov esi, eax
cmp rcx, qword [0x140104010]
je 0x140037abf
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037abf
call fcn.1400bf5e4
nop
mov rcx, qword [rbp - 0x40]
add rcx, 0xfffffffffffffff4
jmp 0x14003798a
lea rdx, [rbp - 0x28]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, rdi
test eax, eax
jne 0x140037b1b
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff4
mov esi, 0xffffffff
cmp rcx, qword [0x140104010]
je 0x140037abf
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037abf
call fcn.1400bf5e4
nop
mov rcx, qword [rbp - 0x40]
add rcx, 0xfffffffffffffff4
jmp 0x14003798a
mov rax, qword [rbp - 0x28]
add qword [r15], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [0x140104018]
mov qword [rbp + 0x50], rbx
mov rdx, r14
lea rcx, [rbp - 0x20]
call fcn.140005880
mov rdi, rax
mov qword [rbp - 0x18], rax
mov r12, qword [r13 + 0x38]
mov esi, 0xffffffff
cmp rbx, r12
je 0x140037c12
lea rcx, [rbx - 0xc]
mov r8d, dword [rcx]
mov rdx, qword [0x140104010]
test r8d, r8d
jns 0x140037b70
cmp rcx, rdx
jne 0x140037b78
cmp dword [r12 - 0xc], 0
jge 0x140037bed
movsxd r13, dword [r12 - 8]
cmp r8d, 1
jg 0x140037b89
cmp r13d, dword [rbx - 4]
jle 0x140037bbd
cmp rcx, rdx
je 0x140037ba9
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037b9e
call fcn.1400bf5e4
mov rax, qword [0x140104018]
mov qword [rbp + 0x50], rax
mov edx, r13d
lea rcx, [rbp + 0x50]
call fcn.140001970
mov rbx, qword [rbp + 0x50]
test eax, eax
je 0x140037c12
lea rdi, [r13*2]
lea eax, [r13 + 1]
movsxd rdx, eax
add rdx, rdx
mov r9, rdi
mov r8, r12
mov rcx, rbx
call fcn.1400029b0
mov dword [rbx - 8], r13d
xor eax, eax
mov word [rdi + rbx], ax
mov rdi, qword [rbp - 0x18]
jmp 0x140037c12
cmp rcx, rdx
je 0x140037c02
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037c02
call fcn.1400bf5e4
mov rax, qword [r13 + 0x38]
mov qword [rbp + 0x50], rax
lock inc dword [rax - 0xc]
mov rbx, qword [rbp + 0x50]
mov rcx, qword [rdi]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x140037c3d
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037c39
mov rcx, qword [rdi]
sub rcx, 0xc
call fcn.1400bf5e4
mov rbx, qword [rbp + 0x50]
movsxd rax, dword [rbx - 8]
add qword [r15], rax
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140104010]
je 0x140037c62
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037c62
call fcn.1400bf5e4
nop
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x140037c84
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037c84
call fcn.1400bf5e4
nop
mov rcx, qword [rbp - 0x40]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x140037ca6
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x140037ca6
call fcn.1400bf5e4
nop
mov rax, qword [r14]
add rax, 0xfffffffffffffff4
cmp rax, qword [0x140104010]
je 0x140037ccb
lock xadd dword [rax], esi
sub esi, 1
jg 0x140037ccb
mov rcx, qword [r14]
sub rcx, 0xc
call fcn.1400bf5e4
mov eax, 1
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret