Function at 0x140145a20
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, 0x1a8
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
mov rsi, qword [rdx]
test rsi, rsi
je 0x14014670b
mov r10, rdx
mov r11, rcx
cmp byte [rdx + 0x81], 0
jne 0x1401463d8
xor ebp, ebp
mov qword [r10], rbp
mov rax, qword [r10 + 0x28]
mov qword [rsp + 0x70], rax
mov r9, qword [r10 + 0x30]
mov r13, qword [r10 + 0x38]
mov r12d, dword [r10 + 0x40]
mov r14d, dword [r10 + 0x78]
mov al, byte [r10 + 0x7c]
mov byte [rsp + 0x22], al
mov rax, qword [r10 + 0x88]
mov qword [rsp + 0x88], rax
mov qword [r10 + 0x88], rbp
mov r8, qword [r10 + 0x90]
mov rax, qword [r10 + 0x98]
mov qword [rsp + 0x80], rax
mov qword [r10 + 0x98], rbp
mov rax, qword [r10 + 0xa0]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r10 + 8]
movups xmm1, xmmword [r10 + 0x18]
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
mov eax, dword [r10 + 0x74]
mov dword [rsp + 0xf0], eax
movups xmm0, xmmword [r10 + 0x44]
movups xmm1, xmmword [r10 + 0x54]
movups xmm2, xmmword [r10 + 0x64]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movzx eax, word [r10 + 0x80]
mov word [rsp + 0xbd], ax
mov al, byte [r10 + 0x82]
mov byte [rsp + 0xbf], al
lea rax, [r11 + 8]
mov qword [rsp + 0x40], rax
mov r15, qword [r11 + 0x10]
mov rcx, r15
movabs rbx, 0xcf3cf3cf3cf3cf3d
mov rax, r15
sub rcx, qword [r11 + 8]
je 0x140145fa9
mov qword [rsp + 0x48], r8
lea rax, [r9 + r13]
sar rax, 0x3f
btc rax, 0x3f
mov rdi, r9
add rdi, r13
movabs rdx, 0x7fffffffffffffff
cmovo rdi, rax
sar rcx, 3
imul rcx, rbx
lea rax, [rdx + r13]
add rdx, r9
cmp rdx, 0xfffffffffffffffe
setb dl
cmp r9, r13
sete bpl
cmp rax, 0xfffffffffffffffe
setb al
cmovae rdi, r13
test r12d, r12d
setne r8b
cmovne rdi, r9
or r8b, al
or bpl, dl
or bpl, r8b
mov byte [rsp + 0x23], bpl
mov rbp, rcx
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x24], r12d
mov r8, rbp
lea rdx, [rbp - 1]
mov rbp, rdx
shr rbp, 1
mov r15, qword [r11 + 8]
mov rax, qword [r11 + 0x10]
mov rcx, rax
sub rcx, r15
sar rcx, 3
imul rcx, rbx
cmp rcx, rbp
jbe 0x1401466bd
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x68], rdx
imul r13, rbp, 0xa8
lea r12, [r15 + r13]
cmp dword [r15 + r13 + 0x40], 0
jne 0x1401464fe
mov r8, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
movabs r9, 0x7fffffffffffffff
add r9, rdx
add r9, 2
cmp r9, 2
jb 0x1401466d8
lea r9, [r8 + rdx]
sar r9, 0x3f
btc r9, 0x3f
add r8, rdx
cmovo r8, r9
mov rdx, r8
cmp byte [rsp + 0x23], 0
je 0x1401466c0
xor r8d, r8d
cmp dword [r12 + 0x78], r14d
setg r8b
xor r9d, r9d
cmp rdx, rdi
setg r9b
cmovne r8d, r9d
cmp r8b, 1
jne 0x140145f90
mov r8, qword [rsp + 0x28]
cmp rcx, r8
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x38], rdi
je 0x140145eb4
mov dword [rsp + 0x34], r14d
jbe 0x1401466c6
imul rbx, r8, 0xa8
lea r14, [r15 + rbx]
mov rax, qword [r12]
mov qword [r12], 0
mov rcx, qword [r15 + rbx]
mov qword [r15 + rbx], rax
test rcx, rcx
jne 0x1401465d0
movups xmm0, xmmword [r12 + 8]
movups xmm1, xmmword [r12 + 0x18]
movups xmmword [r14 + 0x18], xmm1
movups xmmword [r14 + 8], xmm0
lea rdi, [r14 + 0x28]
lea rsi, [r12 + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov al, byte [r12 + 0x7c]
mov byte [r14 + 0x7c], al
mov eax, dword [r12 + 0x78]
mov dword [r14 + 0x78], eax
mov al, byte [r15 + r13 + 0x82]
mov byte [r15 + rbx + 0x82], al
movzx eax, word [r15 + r13 + 0x80]
mov word [r15 + rbx + 0x80], ax
mov rax, qword [r15 + r13 + 0x88]
mov qword [r15 + r13 + 0x88], 0
mov rcx, qword [r15 + rbx + 0x88]
mov qword [r15 + rbx + 0x88], rax
test rcx, rcx
jne 0x140146741
mov rax, qword [r15 + r13 + 0x90]
mov qword [r15 + rbx + 0x90], rax
mov rax, qword [r15 + r13 + 0x98]
mov qword [r15 + r13 + 0x98], 0
mov rsi, qword [r15 + rbx + 0x98]
mov qword [r15 + rbx + 0x98], rax
test rsi, rsi
mov r14d, dword [rsp + 0x34]
mov r12d, dword [rsp + 0x24]
jne 0x140146555
mov rax, qword [r15 + r13 + 0xa0]
mov qword [r15 + rbx + 0xa0], rax
movabs rbx, 0xcf3cf3cf3cf3cf3d
mov rcx, qword [r11 + 8]
mov rax, qword [r11 + 0x10]
sub rax, rcx
sar rax, 3
imul rax, rbx
cmp rax, r8
mov r9, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
jbe 0x1401466c9
imul rax, r8, 0xa8
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x38]
je 0x140145e48
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140145e48
cmp qword [rcx + rax + 0xa0], 0
je 0x140145e48
lea rdx, [rcx + rax]
add rdx, 0x98
mov rdx, qword [rdx]
test rdx, rdx
je 0x1401466cc
mov dl, byte [rdx + 4]
test dl, dl
jne 0x1401466cc
add rcx, rax
add rcx, 0xa0
mov rcx, qword [rcx]
mov qword [rcx + 0x10], r8
mov rcx, qword [r11 + 8]
mov rdx, qword [r11 + 0x10]
sub rdx, rcx
sar rdx, 3
imul rdx, rbx
cmp rdx, r8
jbe 0x1401466cf
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140145ea3
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140145ea3
cmp qword [rcx + rax + 0xa0], 0
je 0x140145ea3
add rax, rcx
add rax, 0x98
mov rax, qword [rax]
test rax, rax
je 0x1401466d2
mov al, byte [rax + 4]
test al, al
jne 0x1401466d2
cmp qword [rsp + 0x68], 1
ja 0x140145bd3
jmp 0x1401464b6
cmp r8, rbp
jbe 0x1401466d5
cmp rax, qword [r11 + 0x18]
jae 0x140146589
test rax, rax
je 0x1401466c3
mov rcx, qword [r12]
mov qword [rax], rcx
xor edx, edx
mov qword [r12], rdx
movups xmm0, xmmword [r12 + 8]
movups xmm1, xmmword [r12 + 0x18]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
lea rsi, [r12 + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r12 + 0x7c]
mov byte [rax + 0x7c], cl
mov ecx, dword [r12 + 0x78]
mov dword [rax + 0x78], ecx
mov cl, byte [r15 + r13 + 0x82]
mov byte [rax + 0x82], cl
movzx ecx, word [r15 + r13 + 0x80]
mov word [rax + 0x80], cx
mov rcx, qword [r15 + r13 + 0x88]
mov qword [rax + 0x88], rcx
mov qword [r15 + r13 + 0x88], rdx
mov rcx, qword [r15 + r13 + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [r15 + r13 + 0x98]
mov qword [rax + 0x98], rcx
mov qword [r15 + r13 + 0x98], rdx
mov rcx, qword [r15 + r13 + 0xa0]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [r11 + 0x10], rax
mov r12d, dword [rsp + 0x24]
jmp 0x140145dbf
mov rbp, qword [rsp + 0x28]
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov r12d, dword [rsp + 0x24]
mov edx, r14d
lea r14, [rsp + 0x100]
mov qword [r14 - 8], rsi
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movups xmmword [r14], xmm0
movups xmmword [r14 + 0x10], xmm1
mov edi, r12d
lea r12, [rsp + 0x120]
mov rcx, qword [rsp + 0x70]
mov qword [r12], rcx
mov qword [r12 + 8], r9
mov qword [r12 + 0x10], r13
mov dword [r12 + 0x18], edi
mov ecx, dword [rsp + 0xf0]
mov dword [r12 + 0x4c], ecx
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmm2, xmmword [rsp + 0xe0]
movups xmmword [r12 + 0x1c], xmm0
movups xmmword [r12 + 0x2c], xmm1
movups xmmword [r12 + 0x3c], xmm2
mov dword [r12 + 0x50], edx
lea rcx, [rsp + 0xbd]
mov dl, byte [rsp + 0x22]
mov byte [r12 + 0x54], dl
movzx edx, word [rcx]
mov word [r12 + 0x58], dx
mov cl, byte [rcx + 2]
mov byte [r12 + 0x5a], cl
mov rcx, qword [rsp + 0x88]
mov qword [r12 + 0x60], rcx
mov qword [r12 + 0x68], r8
mov rcx, qword [rsp + 0x80]
mov qword [r12 + 0x70], rcx
mov rcx, qword [rsp + 0x78]
mov qword [r12 + 0x78], rcx
mov rcx, rax
sub rcx, r15
sar rcx, 3
imul rcx, rbx
cmp rcx, rbp
je 0x1401462e5
jbe 0x140146714
imul rbx, rbp, 0xa8
lea r13, [r15 + rbx]
mov qword [rsp + 0xf8], 0
mov rcx, qword [r15 + rbx]
mov qword [r15 + rbx], rsi
test rcx, rcx
jne 0x1401465ac
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [r13 + 0x18], xmm1
movups xmmword [r13 + 8], xmm0
lea rdi, [r13 + 0x28]
mov ecx, 0xa
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
mov al, byte [r12 + 0x54]
mov byte [r13 + 0x7c], al
mov eax, dword [r12 + 0x50]
mov dword [r13 + 0x78], eax
mov al, byte [r14 + 0x7a]
mov byte [r15 + rbx + 0x82], al
movzx eax, word [r14 + 0x78]
mov word [r15 + rbx + 0x80], ax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x180], 0
mov rcx, qword [r15 + rbx + 0x88]
mov qword [r15 + rbx + 0x88], rax
test rcx, rcx
jne 0x140146717
mov rax, qword [rsp + 0x188]
mov qword [r15 + rbx + 0x90], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x190], 0
mov rsi, qword [r15 + rbx + 0x98]
mov qword [r15 + rbx + 0x98], rax
test rsi, rsi
jne 0x14014652b
mov rax, qword [rsp + 0x198]
mov qword [r15 + rbx + 0xa0], rax
movabs rbx, 0xcf3cf3cf3cf3cf3d
mov rcx, qword [r11 + 8]
mov rax, qword [r11 + 0x10]
sub rax, rcx
sar rax, 3
imul rax, rbx
cmp rax, rbp
jbe 0x14014670e
imul rax, rbp, 0xa8
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140146206
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140146206
cmp qword [rcx + rax + 0xa0], 0
je 0x140146206
lea rdx, [rcx + rax]
add rdx, 0x98
mov rdx, qword [rdx]
test rdx, rdx
je 0x140146705
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140146705
add rcx, rax
add rcx, 0xa0
mov rcx, qword [rcx]
mov qword [rcx + 0x10], rbp
mov rcx, qword [r11 + 8]
mov rdx, qword [r11 + 0x10]
sub rdx, rcx
sar rdx, 3
imul rdx, rbx
cmp rdx, rbp
jbe 0x140146711
mov rdx, qword [rcx + rax + 0x98]
test rdx, rdx
je 0x140146261
mov dl, byte [rdx + 4]
test dl, dl
jne 0x140146261
cmp qword [rcx + rax + 0xa0], 0
je 0x140146261
add rax, rcx
add rax, 0x98
mov rax, qword [rax]
test rax, rax
je 0x140146708
mov al, byte [rax + 4]
test al, al
jne 0x140146708
mov rcx, qword [rsp + 0x190]
test rcx, rcx
jne 0x1401463a6
mov rsi, qword [rsp + 0x180]
test rsi, rsi
jne 0x1401463e4
mov rcx, qword [rsp + 0xf8]
test rcx, rcx
jne 0x1401464c8
mov rcx, qword [r10 + 0x98]
test rcx, rcx
jne 0x1401463bf
mov rsi, qword [r10 + 0x88]
test rsi, rsi
jne 0x14014644d
mov rcx, qword [r10]
test rcx, rcx
jne 0x1401464e6
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, qword [r11 + 0x18]
jae 0x140146508
test rax, rax
je 0x140146766
mov qword [rax], rsi
xor edx, edx
mov qword [rsp + 0xf8], rdx
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
mov ecx, 0xa
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
mov cl, byte [r12 + 0x54]
mov byte [rax + 0x7c], cl
mov ecx, dword [r12 + 0x50]
mov dword [rax + 0x78], ecx
movzx ecx, word [r14 + 0x78]
mov word [rax + 0x80], cx
mov cl, byte [r14 + 0x7a]
mov byte [rax + 0x82], cl
mov rcx, qword [rsp + 0x180]
mov qword [rax + 0x88], rcx
mov qword [rsp + 0x180], rdx
mov rcx, qword [rsp + 0x188]
mov qword [rax + 0x90], rcx
mov rcx, qword [rsp + 0x190]
mov qword [rax + 0x98], rcx
mov qword [rsp + 0x190], rdx
mov rcx, qword [rsp + 0x198]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [r11 + 0x10], rax
jmp 0x140146191
lock dec dword [rcx]
jne 0x140146272
mov rsi, r10
call fcn.140172a44
mov r10, rsi
jmp 0x140146272
lock dec dword [rcx]
jne 0x1401462a4
mov rsi, r10
call fcn.140172a44
mov r10, rsi
jmp 0x1401462a4
inc dword [r11 + 0x20]
mov rsi, qword [r10]
jmp 0x140145a64
lock dec dword [rsi + 8]
jne 0x140146283
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401d6b00]
cmp qword [rcx + 0x10], rdx
jne 0x14014666b
lea rcx, [0x1401ed3e0]
cmp rax, rcx
jne 0x14014666b
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140146428
lock dec dword [rcx]
je 0x14014669d
mov rbx, r10
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x14014643d
lock dec dword [rdi]
je 0x1401465f9
mov rcx, rsi
call fcn.140172a44
mov r10, rbx
jmp 0x140146283
lock dec dword [rsi + 8]
jne 0x1401462b4
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401d6b00]
cmp qword [rcx + 0x10], rdx
jne 0x140146684
lea rcx, [0x1401ed3e0]
cmp rax, rcx
jne 0x140146684
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x140146491
lock dec dword [rcx]
je 0x1401466ad
mov rbx, r10
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x1401464a6
lock dec dword [rdi]
je 0x140146632
mov rcx, rsi
call fcn.140172a44
mov r10, rbx
jmp 0x1401462b4
mov r15, qword [r11 + 8]
mov rax, qword [r11 + 0x10]
mov r8, qword [rsp + 0x48]
jmp 0x140145fa9
lock dec dword [rcx]
jne 0x140146294
mov rax, qword [rcx + 0x10]
mov rsi, r10
call qword [case.0x1401d7990.0]
mov r10, rsi
jmp 0x140146294
lock dec dword [rcx]
jne 0x1401462c0
mov rax, qword [rcx + 0x10]
call qword [case.0x1401d7990.0]
jmp 0x1401462c0
mov rdx, qword [r12 + 0x30]
jmp 0x140145c5c
lea rdx, [rsp + 0xf8]
mov rcx, qword [rsp + 0x40]
mov rsi, r10
mov rdi, r11
call fcn.14001d4f0
mov r11, rdi
mov r10, rsi
jmp 0x140146191
lock dec dword [rsi]
jne 0x140146177
mov rcx, rsi
mov rdi, r10
mov r14, r11
call fcn.140028ac0
mov rcx, rsi
call fcn.140172a44
mov r11, r14
mov r10, rdi
jmp 0x140146177
lock dec dword [rsi]
jne 0x140145da5
mov rcx, rsi
mov rdi, r10
mov r14, r11
call fcn.140028ac0
mov rcx, rsi
call fcn.140172a44
mov r8, qword [rsp + 0x28]
mov r11, r14
mov r14d, dword [rsp + 0x34]
mov r10, rdi
jmp 0x140145da5
mov rcx, qword [rsp + 0x40]
mov rdx, r12
mov rsi, r10
mov rdi, r11
call fcn.14001d4f0
mov r8, qword [rsp + 0x28]
mov r11, rdi
mov r10, rsi
jmp 0x140145f86
lock dec dword [rcx]
jne 0x1401460bf
mov rax, qword [rcx + 0x10]
mov rsi, r10
mov rdi, r11
call qword [case.0x1401d7990.0]
mov r11, rdi
mov r10, rsi
jmp 0x1401460bf
lock dec dword [rcx]
jne 0x140145cd6
mov rax, qword [rcx + 0x10]
mov rsi, r10
mov rdi, r11
call qword [case.0x1401d7990.0]
mov r8, qword [rsp + 0x28]
mov r11, rdi
mov r10, rsi
jmp 0x140145cd6
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x140146769
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.14000b2f0
mov rcx, rdi
call fcn.140172a44
jmp 0x14014643d
mov rcx, qword [rdi + 0x20]
mov rax, qword [0x14028a5a0]
and rax, rcx
cmp rax, qword [0x14028a588]
je 0x140146773
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.14000b2f0
mov rcx, rdi
call fcn.140172a44
jmp 0x1401464a6
mov rcx, rsi
mov edx, 1
mov rsi, r10
call qword [case.0x1401d7990.0]
mov r10, rsi
jmp 0x140146283
mov rcx, rsi
mov edx, 1
mov rsi, r10
call qword [case.0x1401d7990.0]
mov r10, rsi
jmp 0x1401462b4
mov rdi, r10
call fcn.140172a44
mov r10, rdi
jmp 0x140146428
mov rdi, r10
call fcn.140172a44
mov r10, rdi
jmp 0x140146491
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov qword [rsp + 0x38], rdi
movabs r9, 0x7fffffffffffffff
add r9, r8
add r9, 2
cmp r9, 1
ja 0x140146737
cmp r8, rdx
mov rdi, qword [rsp + 0x38]
je 0x140145c5c
int3
int3
int3
int3
int3
int3
int3
lock dec dword [rcx + 8]
jne 0x14014613a
mov rsi, r10
mov rdi, r11
call fcn.14011cbd0
mov r11, rdi
mov r10, rsi
jmp 0x14014613a
mov rdi, qword [rsp + 0x38]
jmp 0x140145c5c
lock dec dword [rcx + 8]
jne 0x140145d5e
mov rsi, r10
mov rdi, r11
call fcn.14011cbd0
mov r8, qword [rsp + 0x28]
mov r11, rdi
mov r10, rsi
jmp 0x140145d5e
int3
call fcn.1400ebe70
jmp 0x140146614
call fcn.1400ebe70
jmp 0x14014664d