Function at 0x14021e600
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, 0xc8
movups xmmword [rsp + 0xa0], xmm6
movups xmmword [rsp + 0xb0], xmm7
mov r14, qword [rcx]
mov bpl, byte [r14 + 0x26]
mov rsi, rcx
xor ecx, ecx
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x34], eax
mov rcx, rsi
call fcn.14021e2d0
mov r15, rax
test rax, rax
je 0x14021eb92
cmp byte [rax + 0x10], 0
je 0x14021eb92
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.14021e020
mov rdx, rax
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x14021ebc0
mov rbx, qword [rdx + 0x18]
movzx eax, byte [r14 + 0x27]
movzx edx, byte [r15 + 0x12]
mov di, word [rbx + 2]
imul eax, edx
rol di, 8
movzx edi, di
add eax, 4
cdqe
add rbx, rax
movzx eax, byte [r15 + 0x12]
cmp eax, edi
jge 0x14021eb85
mov rax, qword [0x140376898]
xor r13d, r13d
mov r12d, 2
xorps xmm7, xmm7
movq xmm6, rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x34], r13d
jle 0x14021eb0c
imul rax, r13, 0x18
add rax, qword [rsi + 0x18]
mov edx, dword [rax + 4]
cmp edx, 0x45
jle 0x14021e9b5
mov rcx, qword [rax + 0x10]
mov r11d, dword [rcx + 0x38]
cmp edx, 0x47
jne 0x14021e704
cmp byte [r15 + 0x10], 1
jne 0x14021e704
mov r8, qword [rbx]
bswap r8
mov qword [rcx + 0x48], r8
cmp bpl, 1
mov r8d, dword [rbx + 0xc]
je 0x14021e81c
cmp r11d, 8
je 0x14021e76b
jg 0x14021e72f
cmp r11d, 4
je 0x14021e7c9
cmp r11d, 6
je 0x14021e79d
jmp 0x14021e7f5
cmp r11d, 0xa
jne 0x14021e7f5
mov r9d, dword [rbx + 0x2c]
bswap r9d
movd xmm2, r9d
mov r9d, dword [rbx + 0x28]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x98], xmm0
bswap r9d
movd xmm3, r9d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
movd xmm4, r9d
mov r9d, dword [rbx + 0x20]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x88], xmm0
bswap r9d
movd xmm5, r9d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
movd xmm2, r9d
mov r9d, dword [rbx + 0x18]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x78], xmm0
bswap r9d
movd xmm3, r9d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
movd xmm4, r9d
mov r9d, dword [rbx + 0x10]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x68], xmm0
bswap r9d
movd xmm5, r9d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
bswap r8d
movd xmm2, r8d
mov r8d, dword [rbx + 8]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x58], xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
jmp 0x14021e8f9
cmp r11d, 8
je 0x14021e86d
jg 0x14021e839
cmp r11d, 4
je 0x14021e8bb
cmp r11d, 6
je 0x14021e897
jmp 0x14021e8df
cmp r11d, 0xa
jne 0x14021e8df
mov r9d, dword [rbx + 0x2c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x28]
bswap r9d
movsd qword [rsp + 0x98], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x20]
bswap r9d
movsd qword [rsp + 0x88], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x18]
bswap r9d
movsd qword [rsp + 0x78], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x10]
bswap r9d
movsd qword [rsp + 0x68], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x60], xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rbx + 8]
bswap r8d
movsd qword [rsp + 0x58], xmm0
cvtsi2sd xmm0, r8d
mov rax, qword [rax + 8]
movsd qword [rsp + 0x50], xmm0
cmp edx, 0x46
jne 0x14021e945
xor edx, edx
mov r8, qword [rsp + 0x28]
lea r9, [rsp + 0x4c]
mov dword [rsp + 0x4c], edx
mov edx, r11d
call rax
cmp dword [rsp + 0x4c], 0
mov dword [rsp + 0x48], eax
jne 0x14021e935
test eax, eax
je case.0x14021e9f7.64
jmp 0x14021ebc0
test eax, eax
jne 0x14021ebc0
xorps xmm6, xmm6
jmp case.0x14021e9f7.63
mov rdx, qword [rsp + 0x28]
movsd xmm0, qword [r15]
mov qword [rsp + 0x38], rcx
mov qword [rcx + 0x28], rdx
movzx edx, byte [r15 + 0x10]
movsd qword [rcx + 0x50], xmm0
dec edx
movsd qword [rcx + 0x60], xmm0
mov dword [rcx + 0x3c], edx
movzx edx, byte [r15 + 0x11]
mov dword [rcx + 0x58], edx
mov dword [rcx + 0x5c], edx
call rax
mov rcx, qword [rsp + 0x38]
mov edx, dword [rcx + 0x5c]
movsd xmm0, qword [rcx + 0x60]
cmp r12d, edx
cmovg r12d, edx
comisd xmm6, xmm0
ja 0x14021e9a4
movups xmm1, xmm6
cmpltsd xmm1, xmm7
andps xmm0, xmm1
andnps xmm1, xmm6
orps xmm0, xmm1
mov dword [rsp + 0x48], eax
test eax, eax
je 0x14021eaec
jmp 0x14021ebc0
cmp byte [r15 + 0x10], 1
mov ecx, dword [rax]
jne 0x14021ea04
lea ecx, [rcx*4 + 8]
movsxd rcx, ecx
mov ecx, dword [rbx + rcx]
bswap ecx
cmp bpl, 1
jne 0x14021e9d9
cvtsi2sd xmm0, ecx
jmp 0x14021e9e1
movd xmm4, ecx
cvtss2sd xmm0, xmm4
sub edx, 0x3f
cmp edx, 6
ja case.0x14021e9f7.65
lea rcx, [0x140371fb8]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jmp 0x14021ea4a
and ecx, 0xfe
lea rcx, [rbx + rcx*4 + 8]
cmp edx, 0x41
je 0x14021ea75
jg 0x14021ea6b
cmp edx, 0x3f
je case.0x14021e9f7.63
cmp edx, 0x40
je case.0x14021e9f7.64
mov edx, dword [rcx + 4]
bswap edx
cmp bpl, 1
jne 0x14021eadf
cvtsi2sd xmm0, edx
comisd xmm0, xmmword [rax + 8]
jmp 0x14021eadb
comisd xmm0, xmmword [rax + 8]
jbe case.0x14021e9f7.64
jmp case.0x14021e9f7.63
ucomisd xmm0, qword [rax + 8]
jp case.0x14021e9f7.64
jne case.0x14021e9f7.64
jmp case.0x14021e9f7.63
sub edx, 0x42
cmp edx, 1
jbe 0x14021eaba
jmp 0x14021ea28
mov edx, dword [rcx]
movsd xmm1, qword [rax + 8]
bswap edx
cmp bpl, 1
jne 0x14021ea99
cvtsi2sd xmm0, edx
comisd xmm1, xmm0
jb case.0x14021e9f7.64
mov eax, dword [rcx + 4]
bswap eax
cvtsi2sd xmm0, eax
jmp 0x14021eab4
movd xmm5, edx
cvtss2sd xmm0, xmm5
comisd xmm1, xmm0
jb case.0x14021e9f7.64
mov eax, dword [rcx + 4]
bswap eax
movd xmm2, eax
cvtss2sd xmm0, xmm2
comisd xmm0, xmm1
jmp 0x14021eadb
mov edx, dword [rcx]
bswap edx
cmp bpl, 1
jne 0x14021eaca
cvtsi2sd xmm0, edx
jmp case.0x14021e9f7.66
movd xmm3, edx
cvtss2sd xmm0, xmm3
movsd xmm1, qword [rax + 8]
comisd xmm1, xmm0
jb case.0x14021e9f7.64
jmp case.0x14021e9f7.63
movd xmm4, edx
cvtss2sd xmm0, xmm4
jmp case.0x14021e9f7.68
test r12d, r12d
je case.0x14021e9f7.64
movups xmm6, xmm0
jmp case.0x14021e9f7.63
inc byte [r15 + 0x12]
movzx eax, byte [r14 + 0x27]
jmp 0x14021e695
inc r13
jmp 0x14021e6c7
mov r13b, byte [r15 + 0x12]
mov cl, byte [r15 + 0x10]
lea eax, [r13 + 1]
dec cl
mov byte [r15 + 0x12], al
mov byte [rsp + 0x28], cl
je 0x14021ebb5
mov rbx, qword [rbx]
mov r8d, dword [rsi + 0x24]
xor edx, edx
bswap rbx
cmp r8d, edx
jg 0x14021eb9d
xor r13d, r13d
movzx eax, al
cmp eax, edi
jl 0x14021eb4b
mov rcx, rsi
call fcn.14021e3d0
xorps xmm0, xmm0
comisd xmm0, xmm6
jbe 0x14021eb57
movups xmm6, xmm0
movzx r8d, byte [rsp + 0x28]
movups xmm1, xmm6
mov rcx, rsi
call fcn.14021e2f0
test rax, rax
je 0x14021ebbb
movzx edx, r13b
mov byte [rax + 0x11], r12b
mov qword [rax + 8], rbx
mov byte [rax + 0x12], r13b
cmp edx, edi
jl 0x14021e63a
mov rcx, rsi
call fcn.14021e3d0
jmp 0x14021e63a
test r15, r15
sete byte [rsi + 8]
xor eax, eax
jmp 0x14021ebc0
imul rcx, rdx, 0x18
add rcx, qword [rsi + 0x30]
inc rdx
cmp qword [rcx + 8], rbx
jne 0x14021eb34
mov eax, 0x10b
jmp 0x14021ebc0
mov rbx, qword [r15 + 8]
jmp 0x14021eb3c
mov eax, 7
movups xmm6, xmmword [rsp + 0xa0]
movups xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret