Function at 0x1401520e0
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, 0x108
mov rbx, r9
mov r14, r8
mov r12, rdx
mov rdi, rcx
mov rax, qword [0x14037e040]
xor rax, rsp
mov qword [rsp + 0x100], rax
movabs r15, 0xaaaaaaaaaaaaaa00
mov rsi, qword [rcx + 0x10]
mov r13, qword [rcx + 0x18]
cmp rsi, r13
je 0x1401524bd
mov rax, qword [rsi]
mov qword [rsp + 0x60], rax
mov rax, qword [rsi + 8]
mov qword [rsp + 0x58], rax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x44], 0
lea rax, [rdi + 0x10]
mov qword [rsp + 0x30], rax
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov rax, qword [r12 + 0x110]
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
je 0x1401524a8
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov rax, qword [r12 + 0x110]
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
sub rdx, rcx
sar rdx, 5
cmp rdx, rax
jbe 0x140152af3
shl rax, 5
mov eax, dword [rcx + rax + 0x10]
movzx ecx, al
mov dword [rsp + 0x3c], ecx
and eax, 0xffffff00
mov dword [rsp + 0x40], eax
movzx ebp, byte [rbx + 0x18]
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov rax, qword [r12 + 0x110]
cmp bpl, 1
jne 0x1401527f8
cmp rax, 0xffffffffffffffff
je 0x1401524e3
cmp byte [rbx + 0x18], 0
je 0x140152ae6
mov qword [rsp + 0x50], r14
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0xa0], rax
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x90], xmm0
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov r15, qword [r12 + 0x110]
mov qword [rsp + 0xa8], r12
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r15
jbe 0x140152ae4
mov qword [rsp + 0x28], r13
mov r14, r15
shl r14, 5
mov r12, qword [rax + r14 + 0x18]
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov qword [r12 + 0x110], 0xffffffffffffffff
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x140152ae4
add rcx, r14
lea r12, [rsp + 0xd8]
mov rdx, r12
call fcn.140154470
lea rcx, [rsp + 0x90]
lea r13, [rsp + 0xd0]
mov rdx, r13
call fcn.140154470
mov rax, qword [r13]
cmp rax, qword [r12]
jle 0x1401527b2
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
mov rax, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rbp, r12
sub rbp, rax
sar rbp, 5
lea r14, [r15*2 + 1]
cmp r14, rbp
mov r13, qword [rsp + 0x28]
jae 0x14015257a
lea r12, [r15 + r15]
lea rdx, [rsp + 0xd8]
add r12, 2
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
cmp r12, rbp
jae 0x14015236f
sub rax, rcx
sar rax, 5
cmp rax, r12
jbe 0x140152ae4
mov rax, r12
shl rax, 5
add rax, rcx
mov r13, r14
shl r13, 5
add r13, rcx
mov rcx, rax
call fcn.140154470
mov rcx, r13
lea rdx, [rsp + 0xd0]
call fcn.140154470
mov rax, qword [rsp + 0xd0]
cmp rax, qword [rsp + 0xd8]
cmovg r14, r12
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov r8, r14
sub rax, rcx
sar rax, 5
cmp rax, r14
lea r14, [rsp + 0xb0]
jbe 0x140152ae4
mov r13, r8
shl r13, 5
add rcx, r13
lea rdx, [rsp + 0xd8]
mov r12, r8
call fcn.140154470
mov rcx, r14
lea rdx, [rsp + 0xd0]
call fcn.140154470
mov rax, qword [rsp + 0xd0]
cmp rax, qword [rsp + 0xd8]
jle 0x14015255d
mov qword [rsp + 0x48], r12
mov rax, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rcx, r12
sub rcx, rax
sar rcx, 5
cmp rcx, r15
je 0x140152914
cmp rcx, qword [rsp + 0x48]
jbe 0x140152ae4
cmp rcx, r15
jbe 0x140152ae4
mov rcx, r15
shl rcx, 5
movups xmm0, xmmword [rax + r13]
movups xmm1, xmmword [rax + r13 + 0x10]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
mov r12, qword [rdi + 0x18]
mov r13, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
sub r12, rax
sar r12, 5
cmp r12, r15
jbe 0x140152ae4
mov r14, r15
shl r14, 5
mov r12, qword [rax + r14 + 0x18]
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov qword [r12 + 0x110], r15
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r15
jbe 0x140152ae4
mov rax, qword [rax + r14 + 0x18]
mov rcx, qword [rax + 0x18]
call fcn.140151fa0
mov rcx, qword [rsp + 0x48]
lea r12, [rcx + rcx]
lea r14, [rcx*2 + 1]
mov r15, rcx
cmp r14, rbp
lea rdx, [rsp + 0xd8]
jae 0x140152565
jmp 0x140152306
mov dword [rsp + 0x40], 0xaaaaaa00
mov dword [rsp + 0x3c], 0
jmp 0x1401521b8
lea rax, [r15 + 0xaa]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x44], 0xaaaaaaaa
mov qword [rsp + 0x60], r15
mov dword [rsp + 0x38], 0xaaaaaaaa
jmp 0x14015214c
cmp byte [rbx + 0x18], 0
je 0x140152ae6
lea rcx, [rdi + 8]
mov rax, qword [rbx + 0x10]
lea r8, [rsp + 0xe0]
mov qword [r8 + 0x10], rax
movups xmm0, xmmword [rbx]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x18], r12
mov rdx, qword [rdi + 0x18]
sub rdx, qword [rdi + 0x10]
sar rdx, 5
call fcn.140152d30
jmp 0x140152614
mov rcx, qword [rdi + 0x20]
cmp r12, rcx
jae 0x140152a1e
test r12, r12
je 0x140152ae4
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
add r12, 0x20
mov qword [rdi + 0x18], r12
jmp 0x1401525a9
mov rcx, r15
mov r13, qword [rsp + 0x28]
mov rax, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rbp, r12
sub rbp, rax
sar rbp, 5
mov r15, rcx
cmp rbp, r15
je 0x140152522
jbe 0x140152ae4
mov rcx, r15
shl rcx, 5
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
mov r12, qword [rdi + 0x18]
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
sub r12, rax
sar r12, 5
cmp r12, r15
jbe 0x140152ae4
mov r14, r15
shl r14, 5
mov r12, qword [rax + r14 + 0x18]
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov qword [r12 + 0x110], r15
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r15
jbe 0x140152ae4
mov rax, qword [rax + r14 + 0x18]
mov rcx, qword [rax + 0x18]
call fcn.140151fa0
mov r14, qword [rsp + 0x50]
movabs r15, 0xaaaaaaaaaaaaaa00
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
cmp rax, rcx
je 0x14015278f
mov r15, qword [rax]
mov r8, qword [rax + 8]
mov edx, dword [rax + 0x14]
xor r9d, r9d
cmp qword [rsp + 0x68], 0xffffffffffffffff
je 0x14015264e
mov r10d, dword [rsp + 0x40]
or r10d, dword [rsp + 0x3c]
cmp r10d, 1
je 0x140152afd
cmp byte [rbx + 0x18], 1
jne 0x14015265e
cmp dword [rbx + 0x10], 1
je 0x140152aeb
cmp rax, rcx
sete r10b
cmp rsi, r13
sete r11b
or r11b, r10b
jne 0x14015276c
cmp r9d, dword [rsp + 0x44]
jne 0x140152694
cmp r15, qword [rsp + 0x60]
jne 0x140152694
cmp r8, qword [rsp + 0x58]
jne 0x140152694
cmp edx, dword [rsp + 0x38]
je 0x140152747
cmp rax, rcx
je 0x140152783
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x14]
movups xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x84], eax
mov al, 1
mov byte [rsp + 0x88], al
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
lea rcx, [0x1402876c0]
cmp rax, rcx
jne 0x1401528fe
mov rcx, qword [rdi + 0x38]
movups xmm0, xmmword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xf0], rax
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0xf8], al
mov eax, dword [rsp + 0x89]
mov dword [rsp + 0xf9], eax
movzx eax, word [rsp + 0x8d]
mov word [rsp + 0xfd], ax
movzx eax, byte [rsp + 0x8f]
mov byte [rsp + 0xff], al
movaps xmmword [rsp + 0xe0], xmm0
lea r8, [rsp + 0xe0]
mov rdx, r14
call fcn.140139440
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14016c920
nop
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, rcx
setne dl
cmp rsi, r13
setne r8b
cmp r8b, dl
je 0x140152747
jmp 0x140152694
mov byte [rsp + 0x70], 0
xor eax, eax
jmp 0x1401526bc
lea r8, [r15 + 0xaa]
mov edx, 0xaaaaaaaa
mov r9d, 0xaaaaaaaa
cmp qword [rsp + 0x68], 0xffffffffffffffff
jne 0x14015263a
jmp 0x14015264e
lea rcx, [rdi + 8]
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
lea r8, [rsp + 0xe0]
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
mov rdx, r15
call fcn.140152d30
mov r14, qword [rsp + 0x50]
movabs r15, 0xaaaaaaaaaaaaaa00
mov r13, qword [rsp + 0x28]
jmp 0x140152614
cmp rax, 0xffffffffffffffff
je 0x140152614
mov rbp, r13
mov r13, r14
mov rcx, qword [r12 + 0x18]
call fcn.140151fa0
mov r14, qword [r12 + 0x110]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
sub rcx, rax
sar rcx, 5
cmp rcx, r14
jbe 0x140152ae4
mov rcx, r14
shl rcx, 5
mov r15, qword [rax + rcx + 0x18]
mov rcx, qword [r15 + 0x18]
call fcn.140151fa0
mov qword [r15 + 0x110], 0xffffffffffffffff
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov rdx, rax
sub rdx, rcx
sar rdx, 5
dec rdx
cmp rdx, r14
jne 0x140152898
movabs r15, 0xaaaaaaaaaaaaaa00
cmp rcx, rax
je 0x140152ae4
add rax, 0xffffffffffffffe0
je 0x140152ae4
mov r14, r13
mov r13, rbp
mov qword [rdi + 0x18], rax
jmp 0x140152614
cmp rax, rcx
je 0x140152ae4
shl rdx, 5
mov r15, qword [rcx + rdx + 0x18]
mov rcx, qword [r15 + 0x18]
call fcn.140151fa0
mov qword [r15 + 0x110], 0xffffffffffffffff
mov rax, qword [rdi + 0x18]
cmp rax, qword [rdi + 0x10]
je 0x140152ae4
lea rcx, [rdi + 8]
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
lea r8, [rsp + 0xe0]
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
mov rdx, r14
call fcn.1400cef20
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
jmp 0x14015286c
lea r8, [rsp + 0x70]
mov rcx, rdi
mov rdx, r14
call qword [0x14036e550]
jmp 0x140152747
cmp r15, qword [rsp + 0x48]
jbe 0x140152ae4
add r13, rax
mov rcx, qword [rdi + 0x20]
cmp r12, rcx
jae 0x14015295b
test r12, r12
je 0x140152ae4
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
add r12, 0x20
mov r13, qword [rsp + 0x28]
mov qword [rdi + 0x18], r12
jmp 0x140152422
lea r8, [r15 + 1]
mov rdx, r8
shr rdx, 0x3b
jne 0x140152b0a
movabs rdx, 0x7ffffffffffffff
sub rcx, rax
mov r14, rcx
sar r14, 4
cmp r14, r8
cmovbe r14, r8
movabs rax, 0x7fffffffffffffe0
cmp rcx, rax
cmovae r14, rdx
test r14, r14
je 0x140152b1c
cmp r14, rdx
ja 0x140152b05
mov rcx, r14
shl rcx, 5
call fcn.14016b3ac
mov rcx, r15
shl rcx, 5
add rcx, rax
je 0x140152ae4
shl r14, 5
add rax, r14
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
lea r12, [rcx + 0x20]
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
sub r8, rdx
sub rcx, r8
mov r13, rcx
mov r14, rax
call fcn.1401a4c80
mov rcx, qword [rdi + 0x10]
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x20], r14
test rcx, rcx
je 0x14015294d
call fcn.14016b3e8
jmp 0x14015294d
lea r8, [rbp + 1]
mov rdx, r8
shr rdx, 0x3b
jne 0x140152b0a
movabs rdx, 0x7ffffffffffffff
sub rcx, rax
mov r14, rcx
sar r14, 4
cmp r14, r8
cmovbe r14, r8
movabs rax, 0x7fffffffffffffe0
cmp rcx, rax
cmovae r14, rdx
test r14, r14
je 0x140152b14
cmp r14, rdx
ja 0x140152b05
mov rcx, r14
shl rcx, 5
call fcn.14016b3ac
mov r13, rax
shl rbp, 5
add rbp, r13
je 0x140152ae4
shl r14, 5
add r13, r14
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp], xmm0
lea r12, [rbp + 0x20]
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
sub r8, rdx
sub rbp, r8
mov rcx, rbp
call fcn.1401a4c80
mov rcx, qword [rdi + 0x10]
mov qword [rdi + 0x10], rbp
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x20], r13
test rcx, rcx
jne 0x140152add
mov r13, qword [rsp + 0x28]
jmp 0x140152557
call fcn.14016b3e8
jmp 0x140152ad3
ud2
call fcn.1401aa8c0
inc dword [rdi + 0x28]
jmp 0x14015265e
mov rcx, qword [rsp + 0x30]
call fcn.1401db200
dec dword [rdi + 0x28]
jmp 0x14015264e
call fcn.1401a62b0
mov rcx, qword [rsp + 0x30]
call fcn.1401a62d0
xor r13d, r13d
jmp 0x140152a7c
xor eax, eax
jmp 0x1401529b6