Function at 0x140235e28
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movapd xmmword [rsp + 0x70], xmm7
movapd xmmword [rsp + 0x60], xmm6
mov r15, rdx
mov rsi, rcx
mov rdx, qword [rdx + 8]
mov rax, qword [r15 + 0x10]
cmp rax, rdx
jae 0x140235e89
mov rcx, qword [r15]
movabs r8, 0x100002600
movzx r9d, byte [rcx + rax]
cmp r9, 0x20
ja 0x140235e89
bt r8, r9
jae 0x140235e89
inc rax
mov qword [r15 + 0x10], rax
cmp rdx, rax
jne 0x140235e67
jmp 0x140235f17
cmp rax, rdx
jae 0x140235f17
mov rcx, qword [r15]
cmp byte [rcx + rax], 0x23
jne 0x140235f4e
lea r8, [rax + 1]
mov qword [r15 + 0x10], r8
mov r9, r8
cmp r8, rdx
jae 0x140235efe
movabs r10, 0x3f0000003f
mov r9, r8
movzx r11d, byte [rcx + r9]
lea edi, [r11 - 0x30]
cmp dil, 0xa
jb 0x140235edb
add r11d, 0xffffffbf
cmp r11d, 0x25
ja 0x140235eea
bt r10, r11
jae 0x140235eea
inc r9
mov qword [r15 + 0x10], r9
cmp rdx, r9
jne 0x140235ebc
mov r9, rdx
cmp r9, rax
jbe 0x140237062
cmp byte [rcx + r8], 0xc0
jl 0x140237062
cmp r9, rdx
jae 0x140236002
cmp byte [rcx + r9], 0xbf
jg 0x14023600b
jmp 0x140237062
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x3f]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 9], xmm0
mov qword [rsi], 0
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r15
call fcn.140235c03
mov r12, rax
mov r14, rdx
mov rcx, rdx
call fcn.1401a6baf
mov rbp, rax
mov rdi, rdx
mov rcx, rdx
mov rdx, r12
mov r8, r14
call sub.msvcrt.dll_memcpy
test r14, r14
je 0x140236080
xor eax, eax
mov cl, byte [rdi + rax]
lea edx, [rcx - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
mov byte [rdi + rax], dl
inc rax
cmp r14, rax
jne 0x140235f83
cmp r14, 3
je 0x140236050
cmp r14, 4
jne 0x1402360bc
cmp dword [rdi], 0x61626772
je 0x1402363b1
cmp dword [rdi], 0x616c7368
je 0x1402364a7
movabs r9, 0x736f6d6570736575
movabs rdx, 0x6c7967656e657261
movabs r8, 0x58f21f0ebfeefcaa
movabs r10, 0x48f8090da8fef6b4
mov r15d, r14d
and r15d, 7
xor r11d, r11d
jmp 0x140236144
jne 0x140237062
mov r9, rdx
sub r9, r8
add r9, 0xfffffffffffffffd
cmp r9, 5
ja case.0x14023602a.5
lea rax, [0x1402f1e68]
movsxd rdx, dword [rax + r9*4]
add rdx, rax
jmp rdx
mov dl, byte [rcx + r8]
lea eax, [rdx - 0x30]
cmp al, 0xa
jb 0x1402366a2
lea eax, [rdx - 0x61]
cmp al, 6
jae 0x14023668f
add dl, 0xa9
mov eax, edx
jmp 0x1402366a2
movzx eax, word [rdi]
xor eax, 0x6772
movzx ecx, byte [rdi + 2]
xor ecx, 0x62
or cx, ax
je 0x1402363b1
movzx eax, word [rdi]
xor eax, 0x7368
movzx ecx, byte [rdi + 2]
xor ecx, 0x6c
or cx, ax
je 0x1402364a7
movabs r9, 0x736f6d6570736575
movabs rdx, 0x6c7967656e657261
movabs r8, 0x58f21f0ebfeefcaa
movabs r10, 0x48f8090da8fef6b4
mov r15d, r14d
and r15d, 7
xor r11d, r11d
xor r12d, r12d
xor eax, eax
jmp 0x14023614d
movabs r9, 0x736f6d6570736575
movabs rdx, 0x6c7967656e657261
movabs r8, 0x58f21f0ebfeefcaa
movabs r10, 0x48f8090da8fef6b4
mov rax, r14
xor r11d, r11d
and rax, 0xfffffffffffffff8
je 0x140236133
add r9, r10
rol r10, 0xd
mov rcx, qword [rdi + r11]
xor r10, r9
rol r9, 0x20
xor r8, rcx
add rdx, r8
rol r8, 0x10
xor r8, rdx
add r9, r8
rol r8, 0x15
add rdx, r10
rol r10, 0x11
xor r10, rdx
rol rdx, 0x20
xor r8, r9
xor r9, rcx
add r11, 8
cmp r11, rax
jb 0x1402360f0
mov r15d, r14d
and r15d, 7
cmp r15, 4
jb 0x1402360b2
mov r12d, dword [rdi + r11]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, r15
jae 0x140236172
lea rcx, [rax + r11]
movzx ebx, word [rdi + rcx]
lea ecx, [rax*8]
shl rbx, cl
or r12, rbx
or rax, 2
cmp rax, r15
jae 0x14023618a
add r11, rax
movzx r11d, byte [rdi + r11]
shl eax, 3
mov ecx, eax
shl r11, cl
or r12, r11
mov rax, r14
shl rax, 0x38
add r9, r10
rol r10, 0xd
or rax, r12
xor r10, r9
rol r9, 0x20
xor r8, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add r9, r8
rol r8, 0x15
add rdx, r10
rol r10, 0x11
xor r8, r9
xor r10, rdx
rol rdx, 0x20
xor r9, rax
add r9, r10
rol r10, 0xd
xor r10, r9
rol r9, 0x20
xor rdx, 0xff
add rdx, r8
rol r8, 0x10
xor r8, rdx
add r9, r8
rol r8, 0x15
add rdx, r10
rol r10, 0x11
xor r10, rdx
rol rdx, 0x20
xor r8, r9
add r9, r10
rol r10, 0xd
xor r10, r9
rol r9, 0x20
add rdx, r8
rol r8, 0x10
xor r8, rdx
add r9, r8
rol r8, 0x15
add rdx, r10
rol r10, 0x11
xor r10, rdx
rol rdx, 0x20
xor r8, r9
add r9, r10
rol r10, 0xd
add rdx, r8
rol r8, 0x10
xor r8, rdx
rol r8, 0x15
xor r10, r9
add rdx, r10
rol r10, 0x11
mov rax, rdx
rol rax, 0x20
xor rax, r10
xor rax, r8
xor rax, rdx
mov ecx, 0x1fffff
mov edx, eax
and edx, ecx
mov r8, rax
shr r8, 0x15
and r8d, ecx
shr rax, 0x2a
and eax, ecx
imul rcx, rdx, 0x8888889
shr rcx, 0x20
mov r9d, ecx
shl r9d, 5
add ecx, ecx
sub ecx, r9d
add ecx, edx
lea rdx, [0x140385018]
imul r8d, dword [rdx + rcx*8]
add eax, dword [rdx + rcx*8 + 4]
add eax, r8d
mov ecx, eax
shr ecx, 2
imul rcx, rcx, 0x1bacf915
shr rcx, 0x22
imul ecx, ecx, 0x94
sub eax, ecx
lea rbx, [rax + rax*2]
lea r15, str._bQ8_
cmp qword [r15 + rbx*8 + 8], r14
jne 0x1402362e9
lea rax, [r15 + rbx*8]
mov rcx, qword [rax]
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x140236467
mov qword [rsi], 2
test rbp, rbp
je 0x140235f30
mov rcx, qword [0x1403f9220]
xor edx, edx
mov r8, rdi
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1402e3f64
mov r9b, byte [rcx + r8]
mov dl, byte [rcx + r8 + 1]
lea eax, [r9 - 0x30]
cmp al, 0xa
jb 0x140236562
lea eax, [r9 - 0x61]
cmp al, 6
jae 0x14023654b
add r9b, 0xa9
mov eax, r9d
jmp 0x140236562
mov dl, byte [rcx + r8]
lea eax, [rdx - 0x30]
cmp al, 0xa
jb 0x14023674b
lea eax, [rdx - 0x61]
cmp al, 6
jae 0x140236738
add dl, 0xa9
mov eax, edx
jmp 0x14023674b
mov r9b, byte [rcx + r8]
mov dl, byte [rcx + r8 + 1]
lea eax, [r9 - 0x30]
cmp al, 0xa
jb 0x140236834
lea eax, [r9 - 0x61]
cmp al, 6
jae 0x14023681d
add r9b, 0xa9
mov eax, r9d
jmp 0x140236834
mov qword [rsi], 2
jmp 0x140235f30
mov qword [rsp + 0x28], rbp
lea rcx, [rsp + 0x30]
mov rdx, r15
mov r8b, 0x28
call fcn.140235cb5
mov rax, qword [rsp + 0x30]
cmp rax, 6
mov rbp, qword [rsp + 0x28]
jne 0x140236531
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.140235883
mov rax, qword [rsp + 0x30]
cmp rax, 6
mov rbp, qword [rsp + 0x28]
jne 0x140236d42
mov rdx, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
cmp rcx, rdx
ja 0x140237073
movsd xmm0, qword [rsp + 0x38]
je 0x140236b35
mov r8, qword [r15]
mov al, byte [r8 + rcx]
cmp al, 0x25
jne 0x14023642a
inc rcx
mov qword [r15 + 0x10], rcx
cmp rcx, rdx
jae 0x140236a0e
movabs r9, 0x100002600
movzx r10d, byte [r8 + rcx]
cmp r10, 0x20
ja 0x140236a0e
bt r9, r10
jae 0x140236a0e
inc rcx
mov qword [r15 + 0x10], rcx
cmp rdx, rcx
jne 0x14023643d
jmp 0x140236a21
mov qword [rsp + 0x28], rbp
mov r14d, dword [r15 + rbx*8 + 0x10]
mov ebp, r14d
shr ebp, 8
mov r12d, r14d
shr r12d, 0x10
mov r13d, r14d
shr r13d, 0x18
cmp qword [rsp + 0x28], 0
je 0x1402369e2
mov rcx, qword [0x1403f9220]
xor edx, edx
mov r8, rdi
call fcn.1402e3f64
jmp 0x1402369e2
mov qword [rsp + 0x28], rbp
lea rcx, [rsp + 0x30]
mov rdx, r15
mov r8b, 0x28
call fcn.140235cb5
mov rax, qword [rsp + 0x30]
cmp rax, 6
mov rbp, qword [rsp + 0x28]
jne 0x140236531
mov r14, qword [r15 + 8]
mov r13, qword [r15 + 0x10]
cmp r13, r14
jae 0x1402369fe
mov r12, qword [r15]
movabs rcx, 0x100002600
movzx eax, byte [r12 + r13]
cmp rax, 0x20
ja 0x140236d67
bt rcx, rax
jae 0x140236d67
inc r13
mov qword [r15 + 0x10], r13
cmp r14, r13
jne 0x1402364ea
mov r13, r14
mov rcx, r12
mov rdx, r14
mov r8, r13
call fcn.140235b42
mov rcx, rax
shr rcx, 0x20
mov edx, 5
jmp 0x140236a00
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov qword [rsi], rax
jmp 0x1402362f0
lea eax, [r9 - 0x41]
add r9b, 0xc9
cmp al, 6
movzx r9d, r9b
mov eax, 0x30
cmovb eax, r9d
lea r14d, [rdx - 0x30]
cmp r14b, 0xa
jb 0x140236596
lea r9d, [rdx - 0x61]
cmp r9b, 6
jae 0x14023657e
add dl, 0xa9
mov r14d, edx
jmp 0x140236596
lea r9d, [rdx - 0x41]
add dl, 0xc9
cmp r9b, 6
movzx edx, dl
mov r14d, 0x30
cmovb r14d, edx
mov r10b, byte [rcx + r8 + 2]
mov r9b, byte [rcx + r8 + 3]
lea edx, [r10 - 0x30]
cmp dl, 0xa
jb 0x1402365d3
lea edx, [r10 - 0x61]
cmp dl, 6
jae 0x1402365bb
add r10b, 0xa9
mov edx, r10d
jmp 0x1402365d3
lea edx, [r10 - 0x41]
add r10b, 0xc9
cmp dl, 6
movzx r10d, r10b
mov edx, 0x30
cmovb edx, r10d
lea ebp, [r9 - 0x30]
cmp bpl, 0xa
jb 0x140236609
lea r10d, [r9 - 0x61]
cmp r10b, 6
jae 0x1402365f0
add r9b, 0xa9
mov ebp, r9d
jmp 0x140236609
lea r10d, [r9 - 0x41]
add r9b, 0xc9
cmp r10b, 6
movzx r9d, r9b
mov ebp, 0x30
cmovb ebp, r9d
mov r9b, byte [rcx + r8 + 4]
mov cl, byte [rcx + r8 + 5]
lea r12d, [r9 - 0x30]
cmp r12b, 0xa
jb 0x14023664a
lea r8d, [r9 - 0x61]
cmp r8b, 6
jae 0x140236630
add r9b, 0xa9
mov r12d, r9d
jmp 0x14023664a
lea r8d, [r9 - 0x41]
add r9b, 0xc9
cmp r8b, 6
movzx r8d, r9b
mov r12d, 0x30
cmovb r12d, r8d
shl al, 4
shl dl, 4
lea r8d, [rcx - 0x30]
cmp r8b, 0xa
jb 0x140236684
lea r8d, [rcx - 0x61]
cmp r8b, 6
jae 0x14023666c
add cl, 0xa9
mov r8d, ecx
jmp 0x140236684
lea r8d, [rcx - 0x41]
add cl, 0xc9
cmp r8b, 6
movzx ecx, cl
mov r8d, 0x30
cmovb r8d, ecx
or r14b, al
or bpl, dl
jmp 0x140236729
lea eax, [rdx - 0x41]
add dl, 0xc9
cmp al, 6
movzx edx, dl
mov eax, 0x30
cmovb eax, edx
mov r9b, byte [rcx + r8 + 1]
lea edx, [r9 - 0x30]
cmp dl, 0xa
jb 0x1402366da
lea edx, [r9 - 0x61]
cmp dl, 6
jae 0x1402366c2
add r9b, 0xa9
mov edx, r9d
jmp 0x1402366da
lea edx, [r9 - 0x41]
add r9b, 0xc9
cmp dl, 6
movzx r9d, r9b
mov edx, 0x30
cmovb edx, r9d
mov r14d, eax
shl r14b, 4
mov ebp, edx
shl bpl, 4
mov cl, byte [rcx + r8 + 2]
lea r8d, [rcx - 0x30]
cmp r8b, 0xa
jb 0x140236720
lea r8d, [rcx - 0x61]
cmp r8b, 6
jae 0x140236708
add cl, 0xa9
mov r8d, ecx
jmp 0x140236720
lea r8d, [rcx - 0x41]
add cl, 0xc9
cmp r8b, 6
movzx ecx, cl
mov r8d, 0x30
cmovb r8d, ecx
or r14b, al
or bpl, dl
mov r12d, r8d
shl r12b, 4
or r12b, r8b
mov r13b, 0xff
jmp 0x1402369e2
lea eax, [rdx - 0x41]
add dl, 0xc9
cmp al, 6
movzx edx, dl
mov eax, 0x30
cmovb eax, edx
mov r9b, byte [rcx + r8 + 1]
lea edx, [r9 - 0x30]
cmp dl, 0xa
jb 0x140236783
lea edx, [r9 - 0x61]
cmp dl, 6
jae 0x14023676b
add r9b, 0xa9
mov edx, r9d
jmp 0x140236783
lea edx, [r9 - 0x41]
add r9b, 0xc9
cmp dl, 6
movzx r9d, r9b
mov edx, 0x30
cmovb edx, r9d
mov r10b, byte [rcx + r8 + 2]
lea r9d, [r10 - 0x30]
cmp r9b, 0xa
jb 0x1402367bf
lea r9d, [r10 - 0x61]
cmp r9b, 6
jae 0x1402367a5
add r10b, 0xa9
mov r9d, r10d
jmp 0x1402367bf
lea r9d, [r10 - 0x41]
add r10b, 0xc9
cmp r9b, 6
movzx r10d, r10b
mov r9d, 0x30
cmovb r9d, r10d
mov r14d, eax
shl r14b, 4
mov ebp, edx
shl bpl, 4
mov r12d, r9d
shl r12b, 4
mov cl, byte [rcx + r8 + 3]
lea r8d, [rcx - 0x30]
cmp r8b, 0xa
jb 0x14023680c
lea r8d, [rcx - 0x61]
cmp r8b, 6
jae 0x1402367f4
add cl, 0xa9
mov r8d, ecx
jmp 0x14023680c
lea r8d, [rcx - 0x41]
add cl, 0xc9
cmp r8b, 6
movzx ecx, cl
mov r8d, 0x30
cmovb r8d, ecx
or r14b, al
or bpl, dl
or r12b, r9b
mov r13d, r8d
jmp 0x1402369db
lea eax, [r9 - 0x41]
add r9b, 0xc9
cmp al, 6
movzx r9d, r9b
mov eax, 0x30
cmovb eax, r9d
lea r14d, [rdx - 0x30]
cmp r14b, 0xa
jb 0x140236868
lea r9d, [rdx - 0x61]
cmp r9b, 6
jae 0x140236850
add dl, 0xa9
mov r14d, edx
jmp 0x140236868
lea r9d, [rdx - 0x41]
add dl, 0xc9
cmp r9b, 6
movzx edx, dl
mov r14d, 0x30
cmovb r14d, edx
mov r10b, byte [rcx + r8 + 2]
mov r9b, byte [rcx + r8 + 3]
lea edx, [r10 - 0x30]
cmp dl, 0xa
jb 0x1402368a5
lea edx, [r10 - 0x61]
cmp dl, 6
jae 0x14023688d
add r10b, 0xa9
mov edx, r10d
jmp 0x1402368a5
lea edx, [r10 - 0x41]
add r10b, 0xc9
cmp dl, 6
movzx r10d, r10b
mov edx, 0x30
cmovb edx, r10d
lea ebp, [r9 - 0x30]
cmp bpl, 0xa
jb 0x1402368db
lea r10d, [r9 - 0x61]
cmp r10b, 6
jae 0x1402368c2
add r9b, 0xa9
mov ebp, r9d
jmp 0x1402368db
lea r10d, [r9 - 0x41]
add r9b, 0xc9
cmp r10b, 6
movzx r9d, r9b
mov ebp, 0x30
cmovb ebp, r9d
mov r11b, byte [rcx + r8 + 4]
mov r10b, byte [rcx + r8 + 5]
lea r9d, [r11 - 0x30]
cmp r9b, 0xa
jb 0x14023691c
lea r9d, [r11 - 0x61]
cmp r9b, 6
jae 0x140236902
add r11b, 0xa9
mov r9d, r11d
jmp 0x14023691c
lea r9d, [r11 - 0x41]
add r11b, 0xc9
cmp r9b, 6
movzx r11d, r11b
mov r9d, 0x30
cmovb r9d, r11d
lea r12d, [r10 - 0x30]
cmp r12b, 0xa
jb 0x140236953
lea r11d, [r10 - 0x61]
cmp r11b, 6
jae 0x140236939
add r10b, 0xa9
mov r12d, r10d
jmp 0x140236953
lea r11d, [r10 - 0x41]
add r10b, 0xc9
cmp r11b, 6
movzx r10d, r10b
mov r12d, 0x30
cmovb r12d, r10d
mov r10b, byte [rcx + r8 + 6]
mov cl, byte [rcx + r8 + 7]
lea r13d, [r10 - 0x30]
cmp r13b, 0xa
jb 0x140236994
lea r8d, [r10 - 0x61]
cmp r8b, 6
jae 0x14023697a
add r10b, 0xa9
mov r13d, r10d
jmp 0x140236994
lea r8d, [r10 - 0x41]
add r10b, 0xc9
cmp r8b, 6
movzx r8d, r10b
mov r13d, 0x30
cmovb r13d, r8d
shl al, 4
shl dl, 4
shl r9b, 4
lea r8d, [rcx - 0x30]
cmp r8b, 0xa
jb 0x1402369d2
lea r8d, [rcx - 0x61]
cmp r8b, 6
jae 0x1402369ba
add cl, 0xa9
mov r8d, ecx
jmp 0x1402369d2
lea r8d, [rcx - 0x41]
add cl, 0xc9
cmp r8b, 6
movzx ecx, cl
mov r8d, 0x30
cmovb r8d, ecx
or r14b, al
or bpl, dl
or r12b, r9b
shl r13b, 4
or r13b, r8b
mov byte [rsi + 8], r14b
mov byte [rsi + 9], bpl
mov byte [rsi + 0xa], r12b
mov byte [rsi + 0xb], r13b
mov qword [rsi], 6
jmp 0x140235f30
xor edx, edx
mov qword [rsi], rdx
mov dword [rsi + 8], eax
mov dword [rsi + 0xc], ecx
jmp 0x1402362f0
cmp rcx, rdx
jae 0x140236a21
cmp byte [r8 + rcx], 0x2c
jne 0x140236a21
inc rcx
mov qword [r15 + 0x10], rcx
cmp al, 0x25
jne 0x140236b35
divsd xmm0, qword [0x1402f1e50]
mulsd xmm0, qword [0x1402f1e48]
call fcn.1402e48a0
xor eax, eax
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x1402f1e58]
minsd xmm0, qword [0x1402f1e60]
cvttsd2si r14d, xmm0
cmovp r14d, eax
mov ecx, 0xff
cmp r14d, ecx
cmovge r14d, ecx
test r14d, r14d
cmovle r14d, eax
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.1402370a6
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
lea r12, [rsp + 0x30]
movsd xmm0, qword [r12 + 8]
mulsd xmm0, qword [0x1402f1e48]
call fcn.1402e48a0
xor eax, eax
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x1402f1e58]
minsd xmm0, qword [0x1402f1e60]
cvttsd2si ebp, xmm0
cmovp ebp, eax
mov ecx, 0xff
cmp ebp, ecx
cmovge ebp, ecx
test ebp, ebp
cmovle ebp, eax
mov rcx, r12
mov rdx, r15
call fcn.1402370a6
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
movsd xmm0, qword [rsp + 0x38]
mulsd xmm0, qword [0x1402f1e48]
call fcn.1402e48a0
xor eax, eax
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x1402f1e58]
minsd xmm0, qword [0x1402f1e60]
cvttsd2si r12d, xmm0
cmovp r12d, eax
mov ecx, 0xff
cmp r12d, ecx
cmovge r12d, ecx
test r12d, r12d
cmovle r12d, eax
jmp 0x140236c12
call fcn.1402e48a0
xor ebx, ebx
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x1402f1e58]
minsd xmm0, qword [0x1402f1e60]
cvttsd2si eax, xmm0
cmovnp ebx, eax
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.1402372db
mov rax, qword [rsp + 0x30]
cmp rax, 6
mov rbp, qword [rsp + 0x28]
jne 0x140236d42
lea r14, [rsp + 0x30]
movsd xmm0, qword [r14 + 8]
call fcn.1402e48a0
movapd xmm6, xmm0
mov rcx, r14
mov rdx, r15
call fcn.1402372db
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
xorpd xmm1, xmm1
maxsd xmm0, xmm1
movsd xmm7, qword [0x1402f1e48]
minsd xmm0, xmm7
maxsd xmm1, xmm0
movapd xmm0, xmm7
minsd xmm0, xmm1
cvttsd2si r14d, xmm0
xorpd xmm0, xmm0
maxsd xmm6, xmm0
minsd xmm6, xmm7
maxsd xmm0, xmm6
movapd xmm1, xmm7
minsd xmm1, xmm0
cvttsd2si ebp, xmm1
movsd xmm0, qword [rsp + 0x38]
call fcn.1402e48a0
xorpd xmm1, xmm1
maxsd xmm0, xmm1
minsd xmm0, xmm7
maxsd xmm1, xmm0
minsd xmm7, xmm1
cvttsd2si r12d, xmm7
mov r8, qword [r15 + 8]
mov rbx, qword [r15 + 0x10]
cmp rbx, r8
jae 0x140236c4b
mov rax, qword [r15]
movabs rcx, 0x100002600
movzx edx, byte [rax + rbx]
cmp rdx, 0x20
ja 0x140236c4b
bt rcx, rdx
jae 0x140236c4b
inc rbx
mov qword [r15 + 0x10], rbx
cmp r8, rbx
jne 0x140236c2c
mov rbx, r8
mov qword [rsp + 0x58], r8
lea rdx, str._HRESULT_
mov r8d, 1
mov rcx, r15
call fcn.140237293
mov r13b, 0xff
test al, al
jne 0x140236cc4
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.1402372db
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
movsd xmm0, qword [rsp + 0x38]
xorpd xmm1, xmm1
maxsd xmm0, xmm1
minsd xmm0, qword [0x1402f1e38]
movsd xmm2, qword [0x1402f1e48]
mulsd xmm0, xmm2
maxsd xmm1, xmm0
minsd xmm2, xmm1
cvttsd2si r13d, xmm2
mov rax, qword [r15 + 8]
mov qword [rsp + 0x58], rax
mov rbx, qword [r15 + 0x10]
cmp rbx, qword [rsp + 0x58]
jae 0x140236d09
mov rax, qword [r15]
neg qword [rsp + 0x58]
inc rbx
movabs rcx, 0x100002600
movzx edx, byte [rax + rbx - 1]
cmp rdx, 0x20
ja 0x140236d09
bt rcx, rdx
jae 0x140236d09
mov qword [r15 + 0x10], rbx
mov rdx, qword [rsp + 0x58]
add rdx, rbx
inc rdx
inc rbx
cmp rdx, 1
jne 0x140236ce0
lea rcx, [rsp + 0x30]
mov rdx, r15
mov r8b, 0x29
call fcn.140235cb5
mov rax, qword [rsp + 0x30]
cmp rax, 6
je 0x140236485
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov qword [rsi], rax
jmp 0x140237058
movsd xmm0, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x20], rcx
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
mov qword [rsi], rax
movsd qword [rsi + 8], xmm0
jmp 0x1402362f0
cmp r13, r14
jae 0x140236512
lea ecx, [rax - 0x2b]
mov rbp, r13
test cl, 0xfd
jne 0x140236d83
lea rbp, [r13 + 1]
mov qword [r15 + 0x10], rbp
cmp rbp, r14
jae 0x140236dfb
mov cl, byte [r12 + rbp]
add cl, 0xd0
cmp cl, 0xa
jae 0x140236e3c
lea rcx, [r12 + r13]
mov dl, byte [r12 + rbp]
add dl, 0xd0
cmp dl, 9
ja 0x140236db7
inc rbp
mov qword [r15 + 0x10], rbp
cmp r14, rbp
jne 0x140236d9c
mov rbp, r14
mov rdx, rbp
sub rdx, r13
jb 0x140236dd9
test r13, r13
je 0x140236dc8
cmp al, 0xc0
jl 0x140236dd9
test rbp, rbp
je 0x140236e01
cmp rbp, r14
jae 0x140236dff
cmp byte [r12 + rbp], 0xbf
jg 0x140236e01
lea rax, str._home_janus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_svgtypes_0.13.0_src_stream.rs
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r14
mov r8, r13
mov r9, rbp
call fcn.140080f80
jmp 0x14023707f
xor edx, edx
jmp 0x140236e56
jne 0x140236dd9
call fcn.140083760
test al, 1
jne 0x140236e3c
shr rax, 0x20
cmp rbp, r14
jae 0x140236e60
movabs rdx, 0x100002600
movzx ecx, byte [r12 + rbp]
cmp rcx, 0x20
ja 0x140236e60
bt rdx, rcx
jae 0x140236e60
inc rbp
mov qword [r15 + 0x10], rbp
cmp r14, rbp
jne 0x140236e1d
jmp 0x140236e73
mov rcx, r12
mov rdx, r14
mov r8, r13
call fcn.140235b42
mov rcx, rax
shr rcx, 0x20
mov edx, 5
mov rbp, qword [rsp + 0x28]
jmp 0x140236a00
cmp rbp, r14
jae 0x140236e73
cmp byte [r12 + rbp], 0x2c
jne 0x140236e73
inc rbp
mov qword [r15 + 0x10], rbp
cdqe
imul rcx, rax, 0xffffffffb60b60b7
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
sar ecx, 8
add ecx, edx
imul ecx, ecx, 0x168
sub eax, ecx
mov ebx, 0x168
add ebx, eax
cmp eax, 0xfffffe98
cmovb ebx, eax
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.1402370a6
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
lea rcx, [rsp + 0x30]
movsd xmm6, qword [rcx + 8]
mov rdx, r15
call fcn.1402370a6
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
xorpd xmm0, xmm0
maxsd xmm6, xmm0
minsd xmm6, qword [0x1402f1e38]
movsd xmm2, qword [rsp + 0x38]
maxsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
minsd xmm2, qword [0x1402f1e38]
divss xmm0, dword [0x1402f1e40]
cvtsd2ss xmm1, xmm6
cvtsd2ss xmm2, xmm2
call fcn.140237166
mov r14d, eax
mov rbx, qword [r15 + 8]
mov r12, qword [r15 + 0x10]
cmp r12, rbx
jae 0x140236f5b
mov rax, qword [r15]
movabs rdx, 0x100002600
movzx ecx, byte [rax + r12]
cmp rcx, 0x20
ja 0x140236f5b
bt rdx, rcx
jae 0x140236f5b
inc r12
mov qword [r15 + 0x10], r12
cmp rbx, r12
jne 0x140236f3b
mov r12, rbx
lea rdx, str._HRESULT_
mov r8d, 1
mov rcx, r15
call fcn.140237293
mov r13b, 0xff
test al, al
jne 0x140236fc9
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.1402372db
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140237038
movsd xmm0, qword [rsp + 0x38]
xorps xmm1, xmm1
maxsd xmm0, xmm1
minsd xmm0, qword [0x1402f1e38]
movsd xmm2, qword [0x1402f1e48]
mulsd xmm0, xmm2
maxsd xmm1, xmm0
minsd xmm2, xmm1
cvttsd2si r13d, xmm2
mov rbx, qword [r15 + 8]
mov r12, qword [r15 + 0x10]
cmp r12, rbx
movabs rdx, 0x100002600
jae 0x140237007
mov rax, qword [r15]
neg rbx
inc r12
movzx ecx, byte [rax + r12 - 1]
cmp rcx, 0x20
ja 0x140237007
bt rdx, rcx
jae 0x140237007
mov qword [r15 + 0x10], r12
lea rcx, [rbx + r12]
inc rcx
inc r12
cmp rcx, 1
jne 0x140236fe1
lea rcx, [rsp + 0x30]
mov rdx, r15
mov r8b, 0x29
call fcn.140235cb5
mov rax, qword [rsp + 0x30]
cmp rax, 6
jne 0x140236d28
mov ebp, r14d
shr ebp, 8
mov r12d, r14d
shr r12d, 0x10
jmp 0x140236485
movsd xmm0, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x20], rcx
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
mov qword [rsi], rax
movsd qword [rsi + 8], xmm0
mov rbp, qword [rsp + 0x28]
jmp 0x1402362f0
lea rax, str._home_janus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_svgtypes_0.13.0_src_stream.rs
mov qword [rsp + 0x20], rax
call fcn.140080f80
lea r8, str._home_janus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_svgtypes_0.13.0_src_stream.rs
call fcn.140079340
ud2