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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xf0], xmm7
movaps xmmword [rsp + 0x100], xmm8
movaps xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x120], xmm10
movaps xmmword [rsp + 0x130], xmm11
movaps xmmword [rsp + 0x140], xmm12
movaps xmmword [rsp + 0x150], xmm13
lea rdi, [0x1400a40a0]
lea rax, [rcx + 0x508]
mov qword [rsp + 0x78], rdi
mov r13, rcx
mov qword [rsp + 0x90], rax
mov eax, dword [rcx + 0x518]
test eax, eax
je 0x140022e9b
cmp eax, 2
lea rdx, [0x1400a4060]
lea rax, [0x1400a4020]
cmovne rax, rdx
mov qword [rsp + 0x78], rax
xor eax, eax
cmp dword [r13 + 0xa84], 3
mov rcx, r13
sete al
xor r15d, r15d
mov dword [r13 + 0x540], eax
call fcn.140022d70
mov ecx, dword [r13 + 0x2dc]
mov dword [rsp + 0x70], 0
test ecx, ecx
jle 0x1400230b0
movq xmm9, qword [0x1400a5df0]
movq xmm11, qword [0x1400a5e00]
movapd xmm8, xmm9
jmp 0x140022f73
lea rdx, [rax*8]
mov rcx, qword [r13 + 0x610]
sub rdx, rax
shl rax, 4
add rax, qword [r13 + 0x26a8]
mov qword [rsp + 0x58], rax
cvttsd2si eax, qword [rax]
lea rdi, [rcx + rdx*8]
pxor xmm12, xmm12
pxor xmm1, xmm1
cvtsi2sd xmm12, eax
mulsd xmm12, qword [0x1400a5dd0]
cvtsi2sd xmm1, dword [r13 + 0x508]
divsd xmm12, xmm1
divsd xmm12, xmm0
movsd xmm0, qword [0x1400a5dd8]
comisd xmm0, xmm12
ja 0x140022f62
comisd xmm12, xmmword [0x1400a5de0]
jbe 0x1400231e8
add r15, 1
cmp dword [r13 + 0x2dc], r15d
jle 0x1400230b0
mov rbx, qword [r13 + 0x2e8]
lea rax, [r15 + r15*8]
mov dword [rsp + 0x60], r15d
mov r14d, r15d
shl rax, 4
add rbx, rax
mov qword [rsp + 0x50], rax
mov eax, dword [rbx + 0x58]
test al, 2
je 0x140022fbe
mov edx, dword [r13 + 0x518]
test edx, edx
jle 0x140022fb8
xor r9d, r9d
xor r8d, r8d
mov edx, r15d
mov rcx, r13
call fcn.140022920
mov eax, dword [rbx + 0x58]
and eax, 0xfffffffd
mov dword [rbx + 0x58], eax
mov eax, dword [rbx]
test eax, eax
js 0x140022f62
movsd xmm0, qword [rbx + 0x18]
movsd xmm6, qword [0x1400a5dc8]
comisd xmm6, xmm0
ja 0x140023850
movsd xmm1, qword [rbx + 0x20]
pxor xmm2, xmm2
comisd xmm2, xmm1
ja 0x140023080
cvttsd2si eax, xmm1
mov ecx, dword [r13 + 0xa70]
mov dword [rbx + 0x28], eax
mov eax, dword [rbx + 0x10]
test ecx, ecx
jle 0x140023014
mov edx, dword [r13 + 0xa74]
cmp ecx, edx
je 0x140023014
imul eax, edx
cdq
idiv ecx
mov edx, dword [rbx + 0xc]
cmp edx, 0x8000
je 0x140023090
mov ecx, pe_nt_image_headers64
sub ecx, edx
sub edx, 0xffffff80
imul ecx, eax
imul edx, eax
mov dword [rsp + 0x98], ecx
mov dword [rsp + 0x84], edx
movsxd rax, dword [rbx + 0x34]
mov edx, dword [r13 + 0x5e0]
cmp eax, edx
jl 0x140022ef0
mov qword [rsp + 0x58], 0
sub eax, edx
cdqe
lea rdx, [rax*8]
sub rdx, rax
mov rax, qword [r13 + 0x26d8]
lea rdi, [rax + rdx*8]
mov eax, dword [r13 + 0xa60]
jmp 0x140022f1a
mov qword [rbx + 0x20], 0
xor eax, eax
jmp 0x140022ff2
mov edi, eax
neg eax
shl edi, 7
shl eax, 7
mov dword [rsp + 0x98], edi
mov dword [rsp + 0x84], eax
jmp 0x14002303d
mov r8d, dword [r13 + 0x534]
mov r9d, dword [r13 + 0x50c]
mov r11d, dword [r13 + 0x510]
mov rdx, qword [r13 + 0x520]
lea eax, [r8 + r8]
test r9b, 4
cmove r8d, eax
mov eax, 0x6009
cmp r8d, 0x6009
cmovle eax, r8d
mov r10d, eax
mov rax, qword [r13 + 0x528]
test r9b, 1
je 0x140023160
shl r9d, 6
mov ecx, 0x14
and r9d, 0x80
sub ecx, r11d
test r8d, r8d
je 0x14002317c
lea r8d, [r10 - 1]
mov r11d, 0xffffff80
lea r10, [rax + r8*4 + 4]
jmp 0x140023140
mov byte [rdx], 0x7f
test r9d, r9d
je 0x140023133
add byte [rdx], r9b
add rax, 4
add rdx, 1
cmp rax, r10
je 0x14002317c
mov r8d, dword [rax]
sar r8d, cl
cmp r8d, 0x7f
jg 0x140023128
cmp r8d, 0xffffff7f
cmovle r8d, r11d
mov byte [rdx], r8b
jmp 0x14002312b
shl r9d, 0xe
mov ecx, 0xc
and r9d, 0x8000
sub ecx, r11d
test r8d, r8d
jne 0x140023870
movaps xmm6, xmmword [rsp + 0xe0]
movaps xmm7, xmmword [rsp + 0xf0]
mov qword [r13 + 0x538], 0
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm11, xmmword [rsp + 0x130]
movaps xmm12, xmmword [rsp + 0x140]
movaps xmm13, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x58]
mov r9d, dword [rdi + 0x24]
mov rdx, rbx
mov rcx, r13
mov r8d, dword [rdi + 0x20]
mov rbp, qword [r13 + 0x528]
mov qword [rsp + 0x30], rax
mov eax, dword [rdi + 0x2c]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 0x28]
mov dword [rsp + 0x20], eax
call fcn.140022bd0
lea rax, [rsp + 0xb0]
mov r9, rdi
mov r8, rbx
mov rcx, qword [rsp + 0x90]
mov rdx, rax
mov qword [rsp + 0x88], rax
call fcn.140022a00
mov esi, dword [r13 + 0x534]
mov r11d, dword [rsp + 0x84]
mov r10d, dword [rsp + 0x98]
mov ecx, esi
mov eax, r11d
sub eax, dword [rbx + 0x48]
sar ecx, 3
cdq
idiv ecx
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x80], eax
mov eax, r10d
sub eax, dword [rbx + 0x4c]
cdq
idiv ecx
mov dword [rsp + 0x64], eax
test esi, esi
jle 0x1400235bd
sar r10d, 8
sar r11d, 8
mov dword [rsp + 0x6c], esi
movapd xmm7, xmm12
mov dword [rsp + 0xa8], r10d
xorpd xmm7, xmm11
movsd xmm10, qword [0x1400a5de8]
mov dword [rsp + 0xac], r11d
mov dword [rsp + 0x74], r14d
nop dword [rax]
movsxd rdx, dword [rbx]
mov r8d, dword [rbx + 0x58]
movsd xmm0, qword [rbx + 0x20]
mov rax, rdx
shl rax, 4
sub rax, rdx
shl rax, 5
add rax, qword [r13 + 0x188]
movzx r12d, byte [rax + 0x5c]
and r8d, 8
jne 0x140023530
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbx + 0x3c]
comisd xmm0, xmm1
jb 0x140023668
sub dword [rsp + 0x6c], 1
je 0x1400235bd
movapd xmm13, xmm12
mov eax, dword [rbx + 0x10]
test eax, eax
je 0x14002347d
mov r9d, dword [rbx + 0x2c]
mov edx, dword [r13 + 0x50c]
mov ecx, r9d
and ecx, 7
and edx, 4
jne 0x140023750
lea eax, [r8 + r8]
test r8d, r8d
jle 0x14002376b
movsxd r10, eax
shl r10, 2
mov r11d, dword [rbp + r10 - 8]
mov dword [rsp + 0x70], r11d
cmp dword [rbx + 0x84], 0xfd
mov r10d, dword [rbp + r10 - 4]
jle 0x1400237a0
mov r14d, dword [rbx + 0x88]
test r14d, r14d
jne 0x14002337d
mov ecx, r9d
and ecx, 3
mov r11, qword [rsp + 0x78]
movsxd rcx, ecx
mov r11, qword [r11 + rcx*8]
test r8d, r8d
jle 0x14002347d
cmp qword [rbx + 0x60], 0
je 0x14002347d
mov ecx, dword [rsp + 0x68]
cmp r8d, ecx
jge 0x140023820
sub ecx, r8d
mov dword [rsp + 0x68], ecx
xor ecx, ecx
mov r9d, dword [rsp + 0x80]
mov r14d, r9d
or r14d, dword [rsp + 0x64]
cmove ecx, r8d
test r11, r11
je 0x140023446
movsd xmm0, qword [0x1400a5e10]
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0xa0], r10d
mulsd xmm0, xmm13
mov dword [rsp + 0x38], r9d
mov r9d, dword [rsp + 0xac]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x30], ecx
mov rcx, rbx
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x9c], r8d
cvttsd2si edx, xmm0
mov dword [rsp + 0x28], edx
mov rdx, rbp
call r11
mov edx, dword [r13 + 0x50c]
mov eax, dword [rsp + 0xa4]
mov r10d, dword [rsp + 0xa0]
mov r8d, dword [rsp + 0x9c]
and edx, 4
cdqe
lea rbp, [rbp + rax*4]
mov eax, dword [rsp + 0x80]
imul eax, r8d
add dword [rbx + 0x48], eax
mov eax, dword [rsp + 0x64]
imul eax, r8d
add dword [rbx + 0x4c], eax
test edx, edx
jne 0x140023474
mov eax, dword [rbp - 8]
sub eax, dword [rsp + 0x70]
mov dword [rbx + 0x54], eax
mov eax, dword [rbp - 4]
sub eax, r10d
mov dword [rbx + 0x50], eax
pxor xmm0, xmm0
mov eax, dword [rdi + 0x2c]
cvtsi2sd xmm0, r8d
mov edx, eax
and edx, 2
mulsd xmm0, xmm13
addsd xmm0, qword [rbx + 0x20]
movsd qword [rbx + 0x20], xmm0
test esi, esi
jle 0x1400235f0
test edx, edx
jne 0x1400234d0
mov ecx, dword [r13 + 0x5e0]
cmp dword [rbx + 0x34], ecx
jge 0x140023560
test al, 0x20
je 0x140023560
test byte [rbx + 0x58], 1
jne 0x140023560
nop dword [rax + rax]
test r12b, r12b
jne 0x140023560
mov r9, qword [rsp + 0x58]
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call fcn.140022c60
test eax, eax
je 0x1400232c0
mov r10d, dword [rsp + 0xc8]
test r10d, r10d
je 0x14002350e
mov rcx, qword [rsp + 0x88]
call fcn.140022b60
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov r9, rdi
mov r8, rbx
call fcn.140022a00
jmp 0x1400232c0
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbx + 0x38]
comisd xmm1, xmm0
jb 0x1400236e0
sub dword [rsp + 0x6c], 1
je 0x1400235bd
xor r8d, r8d
movapd xmm13, xmm7
jmp 0x140023313
mov r14d, dword [rsp + 0x74]
mov r9d, esi
mov r8, rbp
mov rcx, r13
mov edx, r14d
call fcn.140022920
mov eax, dword [rsp + 0x60]
cmp dword [r13 + 0x2dc], eax
jbe 0x1400235bd
mov rdx, qword [rsp + 0x50]
add rdx, qword [r13 + 0x2e8]
movsxd rcx, dword [rdx]
mov rax, rcx
shl rax, 4
sub rax, rcx
shl rax, 5
add rax, qword [r13 + 0x188]
or dword [rax + 8], 0x20
and dword [rdx + 0x2c], 0xffffffef
test byte [r13 + 0xa83], 0x40
jne 0x140023838
mov r9d, dword [rsp + 0xc8]
test r9d, r9d
je 0x1400235d7
mov rcx, qword [rsp + 0x88]
call fcn.140022b60
mov eax, dword [rsp + 0x84]
mov dword [rbx + 0x48], eax
mov eax, dword [rsp + 0x98]
mov dword [rbx + 0x4c], eax
jmp 0x140022f62
test edx, edx
je 0x1400237b8
mov eax, dword [rbx + 0x58]
test al, 8
je 0x1400237e8
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbx + 0x38]
comisd xmm1, xmm0
jb 0x1400235bd
mov r9, qword [rsp + 0x58]
mov r8, rdi
mov rdx, rbx
mov rcx, r13
call fcn.140022c60
test eax, eax
je 0x1400235bd
mov r11d, dword [rsp + 0xc8]
test r11d, r11d
je 0x140023643
mov rcx, qword [rsp + 0x88]
call fcn.140022b60
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov r9, rdi
mov r8, rbx
call fcn.140022a00
jmp 0x1400235bd
subsd xmm1, xmm0
movsd xmm2, qword [0x1400a5de8]
divsd xmm1, xmm12
movapd xmm0, xmm1
andpd xmm1, xmm8
ucomisd xmm2, xmm1
jbe 0x1400236b8
cvttsd2si rax, xmm0
pxor xmm1, xmm1
movapd xmm2, xmm0
cvtsi2sd xmm1, rax
cmpnlesd xmm2, xmm1
andpd xmm2, xmm6
addsd xmm1, xmm2
movapd xmm2, xmm8
andnpd xmm2, xmm0
orpd xmm1, xmm2
movapd xmm0, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, esi
comisd xmm0, xmm1
ja 0x140023810
cvttsd2si r8d, xmm0
sub esi, r8d
jmp 0x14002330e
subsd xmm0, xmm1
movapd xmm2, xmm9
divsd xmm0, xmm12
movapd xmm1, xmm0
andpd xmm1, xmm9
ucomisd xmm10, xmm1
jbe 0x140023729
cvttsd2si rax, xmm0
pxor xmm1, xmm1
movapd xmm3, xmm0
andnpd xmm2, xmm0
cvtsi2sd xmm1, rax
cmpnlesd xmm3, xmm1
andpd xmm3, xmm6
addsd xmm1, xmm3
orpd xmm1, xmm2
movapd xmm0, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, esi
comisd xmm0, xmm1
ja 0x140023800
cvttsd2si r8d, xmm0
sub esi, r8d
jmp 0x14002354d
test r8d, r8d
jle 0x140023768
movsxd r10, r8d
mov eax, r8d
shl r10, 2
jmp 0x140023356
mov eax, r8d
cmp dword [rbx + 0x84], 0xfd
jle 0x140023790
mov r10d, dword [rbx + 0x88]
test r10d, r10d
jne 0x140023790
mov dword [rsp + 0x70], 0
jmp 0x140023377
mov dword [rsp + 0x70], 0
jmp 0x14002347d
mov r11, qword [rsp + 0x78]
movsxd rcx, ecx
mov r11, qword [r11 + rcx*8]
jmp 0x140023392
mov esi, dword [r13 + 0x5e0]
cmp dword [rbx + 0x34], esi
jge 0x1400235bd
test al, 0x20
je 0x1400235bd
mov eax, dword [rbx + 0x58]
test al, 1
jne 0x1400235bd
test al, 8
jne 0x140023603
nop dword [rax + rax]
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [rbx + 0x3c]
comisd xmm0, xmm1
jae 0x140023612
jmp 0x1400235bd
mov r8d, esi
xor esi, esi
jmp 0x14002354d
mov r8d, esi
xor esi, esi
jmp 0x14002330e
mov ecx, r8d
sub ecx, dword [rsp + 0x68]
mov dword [rsp + 0x68], 0
jmp 0x1400233b3
xor r8d, r8d
mov edx, r14d
mov rcx, r13
call fcn.1400180c0
jmp 0x1400235bd
mov r8d, 1
mov edx, r14d
mov rcx, r13
call fcn.1400180c0
jmp 0x140022f62
lea r8d, [r10 - 1]
mov r11d, 0xffff8000
lea r10, [rax + r8*4 + 4]
jmp 0x1400238ac
mov r8d, 0x7fff
mov word [rdx], r8w
test r9d, r9d
je 0x14002389b
add word [rdx], r9w
add rax, 4
add rdx, 2
cmp rax, r10
je 0x14002317c
mov r8d, dword [rax]
sar r8d, cl
cmp r8d, 0x7fff
jg 0x140023888
cmp r8d, 0xffff7fff
cmovle r8d, r11d
mov word [rdx], r8w
jmp 0x140023892