Function at 0x140076320
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov rbx, r9
mov rdi, r8
mov rsi, rcx
mov r13, qword [rdx]
test r13, r13
je 0x140076427
movzx ebp, byte [rbx + 0x10]
cmp bpl, 2
jne 0x140076461
mov r14, rdx
mov byte [rsp + 0x2f], bpl
mov rbp, qword [rbx]
mov r12, qword [rbx + 8]
lea r15, [rbx + 0x18]
lea rcx, [rsp + 0x40]
mov rdx, r15
call fcn.140098390
mov qword [rsp + 0x78], rbp
lock inc qword [rbp]
jle 0x1400769db
lock inc qword [r12 + 0x1d0]
mov qword [rsp + 0xb0], r12
lock inc qword [r12]
jle 0x1400769db
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x49]
movups xmmword [rsp + 0x138], xmm1
movups xmmword [rsp + 0x12f], xmm0
movzx ebp, byte [rsp + 0x59]
mov eax, dword [rsp + 0x5a]
mov dword [rsp + 0x88], eax
movzx eax, word [rsp + 0x5e]
mov word [rsp + 0x8c], ax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 9]
movups xmmword [rsp + 0x97], xmm0
movups xmmword [rsp + 0xa0], xmm1
movzx ecx, byte [rbx + 0x31]
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x3c], ax
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x38], eax
cmp bpl, 2
jne 0x140076583
mov r15, qword [rsp + 0x78]
mov r14, qword [rsp + 0xb0]
movzx ebp, byte [rsp + 0x2f]
jmp 0x1400764e6
mov r15, qword [rbx]
mov r14, qword [rbx + 8]
movzx ebp, byte [rbx + 0x10]
movups xmm0, xmmword [rbx + 0x21]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rbx + 0x11]
movaps xmmword [rsp + 0x40], xmm0
movzx r12d, byte [rbx + 0x31]
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x30], eax
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x34], ax
xor r13d, r13d
jmp 0x1400767c8
movups xmm0, xmmword [rbx + 0x18]
movups xmm1, xmmword [rbx + 0x21]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x47], xmm0
movzx ecx, byte [rbx + 0x31]
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x3c], ax
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x38], eax
mov r15, qword [rbx]
mov r14, qword [rbx + 8]
mov eax, dword [rbx + 0x14]
mov dword [rsp + 0x43], eax
mov eax, dword [rbx + 0x11]
mov dword [rsp + 0x40], eax
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x90], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x94], ax
movzx eax, byte [rsp + 0x46]
mov byte [rsp + 0x96], al
mov rax, qword [rsp + 0x47]
mov qword [rsp + 0x97], rax
movzx eax, byte [rsp + 0x4f]
mov byte [rsp + 0x9f], al
mov eax, dword [rsp + 0x90]
movzx edx, word [rsp + 0x94]
movzx r8d, byte [rsp + 0x96]
mov r9, qword [rsp + 0x97]
movzx r10d, byte [rsp + 0x9f]
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x40], eax
mov word [rsp + 0x44], dx
mov byte [rsp + 0x46], r8b
mov qword [rsp + 0x47], r9
mov byte [rsp + 0x4f], r10b
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x30], eax
movzx eax, word [rsp + 0x3c]
mov word [rsp + 0x34], ax
jmp 0x140076552
pause
mov rax, qword [r13 + 8]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x140076550
test rax, rax
js 0x1400769d6
lea rdx, [rax + 1]
lock cmpxchg qword [r13 + 8], rdx
jne 0x140076560
mov r12d, ecx
jmp 0x1400767c8
add rbx, 0x32
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0xd8], 2
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0xd9], xmm0
movups xmmword [rsp + 0xe9], xmm1
mov byte [rsp + 0xf9], cl
mov eax, dword [rbx]
mov dword [rsp + 0xfa], eax
movzx eax, word [rbx + 4]
mov word [rsp + 0xfe], ax
lea rbx, [r13 + 0x10]
mov rcx, rbx
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1402df928]
mov rax, qword [rax]
shl rax, 1
test rax, rax
jne 0x140076979
xor eax, eax
movzx ecx, byte [r13 + 0x18]
test cl, cl
jne 0x14007698d
mov qword [rsp + 0xc0], rbx
movzx ecx, byte [rdi]
test rcx, rcx
mov dword [rsp + 0xbc], eax
je 0x140076643
movzx ebx, byte [rsp + 0x2f]
cmp ecx, 1
jne 0x14007664c
movzx ecx, byte [rdi + 1]
mov al, 1
jmp 0x14007668c
movzx ebx, byte [rsp + 0x2f]
xor eax, eax
jmp 0x14007668c
mov r12, qword [rdi + 8]
movzx eax, byte [0x1402dfa01]
mov ecx, 0x20
mov edx, 8
call fcn.140019a90
test rax, rax
je 0x1400769dd
mov r15, rax
lea rdx, [r12 + 0x18]
mov rax, qword [r12]
mov r8, qword [r12 + 8]
mov r9, qword [r12 + 0x10]
mov rcx, r15
call qword [rax]
mov al, 2
lea r12, [r13 + 0x20]
mov byte [rsp + 0x40], al
mov byte [rsp + 0x41], cl
mov qword [rsp + 0x48], r15
lea rcx, [rsp + 0x50]
lea rdx, [rdi + 0x28]
mov rax, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
call qword [rax]
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0xc8]
mov rcx, r12
mov r9, r14
call fcn.1400769f0
lea rcx, [r13 + 0x30]
mov rdx, rdi
call fcn.140049210
lea rdx, [r13 + 0x90]
lea rcx, [rsp + 0x40]
mov r8, rdi
call fcn.140048f70
mov r14, qword [rsp + 0x40]
movabs rax, 0x8000000000000000
cmp r14, rax
je 0x140076726
lea rcx, [rsp + 0x40]
call fcn.140050770
test r14, r14
je 0x140076726
mov rcx, qword [rsp + 0x48]
shl r14, 3
mov r8d, 8
mov rdx, r14
call fcn.140019aa0
mov rcx, qword [rdi + 0x30]
lea rax, [rcx + 1]
cmp rax, 2
mov r15, qword [rsp + 0x78]
mov r12d, ebp
jb 0x140076753
lock dec qword [rcx + 8]
jne 0x140076753
mov edx, 0xe0
mov r8d, 8
call fcn.140019aa0
mov qword [rdi + 0x30], 0
movups xmm0, xmmword [rsp + 0x128]
movups xmm1, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x30], eax
movzx eax, word [rsp + 0x8c]
mov word [rsp + 0x34], ax
cmp byte [rsp + 0xbc], 0
mov r14, qword [rsp + 0xb0]
jne 0x1400767b5
mov rax, qword [0x1402df928]
mov rax, qword [rax]
shl rax, 1
test rax, rax
jne 0x1400769bf
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
mov ebp, ebx
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x80], eax
movzx eax, word [rsp + 0x34]
mov word [rsp + 0x84], ax
movzx eax, byte [rdi]
test rax, rax
je 0x14007680f
cmp eax, 1
jne 0x140076813
movzx ecx, byte [rdi + 1]
mov al, 1
jmp 0x14007686c
xor eax, eax
jmp 0x14007686c
mov byte [rsp + 0x78], r12b
mov r12, r15
mov r15d, ebp
mov rbp, r14
mov r14, qword [rdi + 8]
movzx eax, byte [0x1402dfa01]
mov ecx, 0x20
mov edx, 8
call fcn.140019a90
test rax, rax
je 0x1400769dd
mov rbx, rax
lea rdx, [r14 + 0x18]
mov rax, qword [r14]
mov r8, qword [r14 + 8]
mov r9, qword [r14 + 0x10]
mov rcx, rbx
call qword [rax]
mov al, 2
mov r14, rbp
mov ebp, r15d
mov r15, r12
movzx r12d, byte [rsp + 0x78]
mov byte [rsp + 0x40], al
mov byte [rsp + 0x41], cl
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x50]
lea rbx, [rdi + 0x28]
mov rax, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
mov rdx, rbx
call qword [rax]
mov qword [rsi + 0x30], r15
mov qword [rsi + 0x38], r14
mov byte [rsi + 0x40], bpl
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
movups xmmword [rsi + 0x41], xmm0
movups xmmword [rsi + 0x51], xmm1
mov byte [rsi + 0x61], r12b
mov eax, dword [rsp + 0x80]
mov dword [rsi + 0x62], eax
movzx eax, word [rsp + 0x84]
mov word [rsi + 0x66], ax
mov byte [rsi + 0x70], 0
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi + 0x20], xmm2
mov qword [rsi + 0x68], r13
mov rcx, rdi
call fcn.14007ac10
cmp byte [rdi], 2
jb 0x140076929
mov r14, qword [rdi + 8]
lea rcx, [r14 + 0x18]
mov rax, qword [r14]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
call qword [rax + 0x18]
mov edx, 0x20
mov r8d, 8
mov rcx, r14
call fcn.140019aa0
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov r8, qword [rdi + 0x20]
mov rcx, rbx
call qword [rax + 0x18]
mov rcx, qword [rdi + 0x30]
lea rax, [rcx + 1]
cmp rax, 2
jae 0x140076960
mov rax, rsi
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec qword [rcx + 8]
jne 0x140076949
mov edx, 0xe0
mov r8d, 8
call fcn.140019aa0
jmp 0x140076949
call fcn.140219340
xor al, 1
movzx ecx, byte [r13 + 0x18]
test cl, cl
je 0x14007661a
mov qword [rsp + 0x40], rbx
mov byte [rsp + 0x48], al
lea rax, [0x1402392f8]
mov qword [rsp + 0x20], rax
lea rcx, [0x140239028]
lea r9, [0x140239058]
lea r8, [rsp + 0x40]
mov edx, 0x2b
call fcn.14021a390
call fcn.140219340
test al, al
jne 0x1400767b5
mov byte [r13 + 0x18], 1
jmp 0x1400767b5
call fcn.140211800
ud2
mov ecx, 8
mov edx, 0x20
call fcn.140219ca0
int3