Function at 0x1000935d8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x10c8
call fcn.10017b0f0
sub rsp, rax
mov eax, dword [rdx]
and dword [rsp + 0x1110], 0
movaps xmmword [rsp + 0x10b0], xmm6
movaps xmmword [rsp + 0x10a0], xmm7
movaps xmmword [rsp + 0x1090], xmm8
mov dword [rsp + 0x28], eax
mov eax, dword [rcx]
mov r11, r9
mov rbp, rdx
movaps xmmword [rsp + 0x1080], xmm9
movaps xmmword [rsp + 0x1070], xmm10
mov dword [rsp + 0x30], eax
lea r15, [rcx + 4]
test eax, eax
je 0x10009428c
movsd xmm9, qword [0x100038410]
movsd xmm10, qword [0x1000383f0]
movsd xmm7, qword [0x1000383e0]
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x20]
xorpd xmm8, xmm8
mov r8d, dword [r15]
mov esi, dword [r15 + 4]
add r15, 8
mov r9d, r8d
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x2c], esi
and r9d, 0xfffff
mov dword [rsp + 0x34], r9d
test esi, esi
je 0x1000938c2
mov r9, qword [rsp + 0x1120]
mov r8, qword [rsp + 0x1148]
mov r13, qword [rsp + 0x1140]
mov rdi, rsi
mov qword [rsp + 0x40], rsi
mov esi, dword [rsp + 0x28]
lea rbx, [rsp + 0x70]
mov eax, dword [r15]
xor r10d, r10d
add r15, 4
test eax, eax
je 0x1000937ca
mov r12, qword [rsp + 0x1128]
mov rdi, qword [rsp + 0x1138]
mov r11, rax
mov edx, dword [r15]
mov eax, dword [r15 + 4]
add r15, 8
lea r10d, [rax + r10*4]
cmp edx, 7
jne 0x10009371a
movzx ecx, r10b
cvttsd2si r10, qword [rsp + rcx*8 + 0x870]
cmp edx, 1
jne 0x100093732
xor edx, edx
mov eax, r10d
div esi
cvttsd2si r10, qword [rbp + rdx*8 + 4]
jmp 0x1000937b3
cmp edx, 2
jne 0x10009374c
mov eax, dword [rsp + 0x1158]
mov ecx, r10d
and rcx, rax
cvttsd2si r10, qword [r12 + rcx*8]
jmp 0x1000937b3
cmp edx, 3
jne 0x100093766
mov eax, dword [rsp + 0x1150]
mov ecx, r10d
and rcx, rax
cvttsd2si r10, qword [r9 + rcx*8]
jmp 0x1000937b3
cmp edx, 4
jne 0x100093780
mov eax, dword [rsp + 0x1168]
mov ecx, r10d
and rcx, rax
cvttsd2si r10, qword [rdi + rcx*8]
jmp 0x1000937b3
cmp edx, 5
jne 0x10009379a
mov eax, dword [rsp + 0x1178]
mov ecx, r10d
and rcx, rax
cvttsd2si r10, qword [r8 + rcx*8]
jmp 0x1000937b3
cmp edx, 6
jne 0x1000937b3
mov eax, dword [rsp + 0x1170]
mov ecx, r10d
and rcx, rax
cvttsd2si r10, qword [r13 + rcx*8]
sub r11, 1
jne 0x1000936f8
mov rdi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x1128]
mov ecx, dword [r15]
mov eax, dword [r15 + 4]
add r15, 8
lea r10d, [rax + r10*4]
cmp ecx, 7
jne 0x1000937ef
movzx ecx, r10b
lea rax, [rsp + rcx*8 + 0x870]
jmp 0x10009388f
cmp ecx, 2
jne 0x10009380a
mov eax, dword [rsp + 0x1158]
mov ecx, r10d
and rcx, rax
lea rax, [r11 + rcx*8]
jmp 0x10009388f
cmp ecx, 3
jne 0x100093822
mov eax, dword [rsp + 0x1150]
mov ecx, r10d
and rcx, rax
lea rax, [r9 + rcx*8]
jmp 0x10009388f
cmp ecx, 1
jne 0x100093835
xor edx, edx
mov eax, r10d
div esi
lea rax, [rbp + rdx*8 + 4]
jmp 0x10009388f
cmp ecx, 9
jne 0x100093840
and qword [rbx], 0
jmp 0x100093892
cmp ecx, 4
jne 0x100093860
mov eax, dword [rsp + 0x1168]
mov ecx, r10d
and rcx, rax
mov rax, qword [rsp + 0x1138]
lea rax, [rax + rcx*8]
jmp 0x10009388f
cmp ecx, 5
jne 0x100093878
mov eax, dword [rsp + 0x1178]
mov ecx, r10d
and rcx, rax
lea rax, [r8 + rcx*8]
jmp 0x10009388f
cmp ecx, 6
jne 0x100093892
mov eax, dword [rsp + 0x1170]
mov ecx, r10d
and rcx, rax
lea rax, [r13 + rcx*8]
mov qword [rbx], rax
add rbx, 8
sub rdi, 1
mov qword [rsp + 0x40], rdi
jne 0x1000936d3
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x34]
mov esi, dword [rsp + 0x2c]
mov r13, qword [rsp + 0x20]
mov eax, dword [r15 + 4]
mov ecx, dword [r15 + 8]
add r15, 0xc
cmp eax, 7
jne 0x1000938e0
movzx ecx, cl
lea r13, [rsp + rcx*8 + 0x870]
jmp 0x10009392d
cmp eax, 4
jne 0x1000938f9
mov eax, dword [rsp + 0x1168]
and rcx, rax
mov rax, qword [rsp + 0x1138]
jmp 0x100093929
cmp eax, 5
jne 0x100093912
mov eax, dword [rsp + 0x1178]
and rcx, rax
mov rax, qword [rsp + 0x1148]
jmp 0x100093929
cmp eax, 6
jne 0x100093932
mov eax, dword [rsp + 0x1170]
and rcx, rax
mov rax, qword [rsp + 0x1140]
lea r13, [rax + rcx*8]
mov qword [rsp + 0x20], r13
bt r8d, 0x1f
jae 0x100093b75
and r8d, 0x7ff00000
cmp r8d, 0x20000000
je 0x100093b38
cmp r8d, 0x20100000
je 0x100093aff
cmp r8d, 0x20200000
je 0x100093abf
cmp r8d, 0x20300000
je 0x100093a7f
cmp r8d, 0x20400000
je 0x100093a4c
cmp r8d, 0x20500000
je 0x100093a19
cmp r8d, 0x20600000
je 0x1000939e1
cmp r8d, 0x50000000
jne 0x10009426a
and qword [r13], 0
test r9d, r9d
je 0x10009426a
mov rax, r14
mov ecx, r9d
movsd xmm0, qword [r12]
mulsd xmm0, qword [rax]
add rax, 8
sub rcx, 1
addsd xmm0, qword [r13]
movsd qword [r13], xmm0
jne 0x1000939bc
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r14
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm1, qword [rdi + rbx]
movsd xmm0, qword [r12]
call sub.msvcrt.dll_atan2
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x1000939f6
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r14
mov rax, r13
mov edx, r9d
sub rcx, r13
movsd xmm0, qword [rax + rcx]
mulsd xmm0, qword [r12]
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093a2e
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r14
mov rax, r13
mov edx, r9d
sub rcx, r13
movsd xmm0, qword [rax + rcx]
addsd xmm0, qword [r12]
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093a61
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r14
mov rax, r13
mov edx, r9d
sub rcx, r13
movsd xmm0, qword [r12]
comisd xmm0, xmmword [rax + rcx]
jb 0x100093aa7
movapd xmm0, xmm7
jmp 0x100093aac
movapd xmm0, xmm8
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093a94
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r14
mov rax, r13
mov edx, r9d
sub rcx, r13
movsd xmm0, qword [rax + rcx]
comisd xmm0, xmmword [r12]
jbe 0x100093ae7
movapd xmm0, xmm7
jmp 0x100093aec
movapd xmm0, xmm8
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093ad4
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r13
mov rax, r14
mov edx, r9d
sub rcx, r14
movsd xmm0, qword [r12]
comisd xmm0, xmmword [rax]
ja 0x100093b24
movsd xmm0, qword [rax]
movsd qword [rcx + rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093b14
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r13
mov rax, r14
mov edx, r9d
sub rcx, r14
movsd xmm0, qword [r12]
movsd xmm1, qword [rax]
comisd xmm1, xmm0
ja 0x100093b61
movapd xmm0, xmm1
movsd qword [rax + rcx], xmm0
add rax, 8
sub rdx, 1
jne 0x100093b4d
jmp 0x10009426a
and r8d, 0x7ff00000
cmp r8d, 0x20000000
ja 0x100093ef7
je 0x100093eb5
cmp r8d, 0x10700000
ja 0x100093d82
je 0x100093d43
cmp r8d, 0x10000000
je 0x100093d2c
cmp r8d, 0x10100000
je 0x100093cfa
cmp r8d, 0x10300000
je 0x100093cc9
cmp r8d, 0x10400000
je 0x100093c8f
cmp r8d, 0x10500000
je 0x100093c55
cmp r8d, 0x10600000
jne 0x10009426a
test r9d, r9d
je 0x10009426a
lea rsi, [rsp + 0x70]
mov rbp, r12
mov rbx, r13
sub rsi, r12
sub rbp, r13
mov edi, r9d
lea rcx, [rbx + rbp]
mov rax, qword [rcx + rsi]
movsd xmm0, qword [rax]
ucomisd xmm0, xmm8
jp 0x100093c24
jne 0x100093c24
and qword [rbx], 0
jmp 0x100093c3e
movsd xmm0, qword [rcx]
andpd xmm0, xmm9
call sub.msvcrt.dll_log
mulsd xmm0, qword [0x100038458]
movsd qword [rbx], xmm0
add rbx, 8
sub rdi, 1
jne 0x100093c09
mov rbp, qword [rsp + 0x1118]
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm1, qword [rbx + rdi]
movsd xmm0, qword [0x1000383e8]
call sub.msvcrt.dll_pow
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093c6a
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rbx, r13
mov rdi, r12
mov esi, r9d
sub rbx, r12
movsd xmm6, qword [rdi]
movapd xmm0, xmm6
call sub.msvcrt.dll_floor
subsd xmm6, xmm0
movsd qword [rbx + rdi], xmm6
add rdi, 8
sub rsi, 1
jne 0x100093ca4
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rax, r13
mov edx, r9d
sub rcx, r13
movapd xmm0, xmm7
divsd xmm0, qword [rax + rcx]
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093cde
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rax, r13
mov edx, r9d
sub rcx, r13
movsd xmm0, qword [rax + rcx]
xorpd xmm0, xmm10
movsd qword [rax], xmm0
add rax, 8
sub rdx, 1
jne 0x100093d0f
jmp 0x10009426a
mov r8d, r9d
mov rdx, r12
mov rcx, r13
shl r8, 3
call sub.msvcrt.dll_memcpy
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rbx, r12
mov rdi, r13
mov esi, r9d
sub rbx, r13
movsd xmm0, qword [rdi + rbx]
andpd xmm0, xmm9
call sub.msvcrt.dll_sqrt
movapd xmm1, xmm7
divsd xmm1, xmm0
movsd qword [rdi], xmm1
add rdi, 8
sub rsi, 1
jne 0x100093d58
jmp 0x10009426a
cmp r8d, 0x10800000
je 0x100093e83
cmp r8d, 0x10900000
je 0x100093e51
cmp r8d, 0x10a00000
je 0x100093e1f
cmp r8d, 0x10b00000
je 0x100093ded
cmp r8d, 0x10c00000
jne 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_atan
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093dd0
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_acos
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093e02
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_asin
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093e34
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_cos
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093e66
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rbx, r13
mov esi, r9d
sub rdi, r13
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_sin
movsd qword [rbx], xmm0
add rbx, 8
sub rsi, 1
jne 0x100093e98
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdx, r12
mov rcx, r13
mov rax, r14
sub rdx, r14
sub rcx, r14
mov r8d, r9d
movsd xmm0, qword [rax + rdx]
movsd xmm1, qword [rax]
comisd xmm1, xmm0
ja 0x100093ee3
movapd xmm0, xmm1
movsd qword [rax + rcx], xmm0
add rax, 8
sub r8, 1
jne 0x100093ed0
jmp 0x10009426a
cmp r8d, 0x20600000
ja 0x1000940bc
je 0x10009407f
cmp r8d, 0x20100000
je 0x100094041
cmp r8d, 0x20200000
je 0x100093ffc
cmp r8d, 0x20300000
je 0x100093fb7
cmp r8d, 0x20400000
je 0x100093f7f
cmp r8d, 0x20500000
jne 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rdx, r13
mov rax, r14
sub rcx, r14
sub rdx, r14
mov r8d, r9d
movsd xmm0, qword [rax + rcx]
mulsd xmm0, qword [rax]
movsd qword [rdx + rax], xmm0
add rax, 8
sub r8, 1
jne 0x100093f62
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rdx, r13
mov rax, r14
sub rcx, r14
sub rdx, r14
mov r8d, r9d
movsd xmm0, qword [rax + rcx]
addsd xmm0, qword [rax]
movsd qword [rdx + rax], xmm0
add rax, 8
sub r8, 1
jne 0x100093f9a
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rdx, r13
mov rax, r14
sub rcx, r14
sub rdx, r14
mov r8d, r9d
movsd xmm0, qword [rax + rcx]
comisd xmm0, xmmword [rax]
jb 0x100093fe3
movapd xmm0, xmm7
jmp 0x100093fe8
movapd xmm0, xmm8
movsd qword [rdx + rax], xmm0
add rax, 8
sub r8, 1
jne 0x100093fd2
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rdx, r13
mov rax, r14
sub rcx, r14
sub rdx, r14
mov r8d, r9d
movsd xmm0, qword [rax]
comisd xmm0, xmmword [rax + rcx]
jbe 0x100094028
movapd xmm0, xmm7
jmp 0x10009402d
movapd xmm0, xmm8
movsd qword [rdx + rax], xmm0
add rax, 8
sub r8, 1
jne 0x100094017
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdx, r12
mov rcx, r13
mov rax, r14
sub rdx, r14
sub rcx, r14
mov r8d, r9d
movsd xmm0, qword [rax + rdx]
comisd xmm0, xmmword [rax]
ja 0x10009406b
movsd xmm0, qword [rax]
movsd qword [rcx + rax], xmm0
add rax, 8
sub r8, 1
jne 0x10009405c
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdi, r12
mov rsi, r13
mov rbx, r14
sub rdi, r14
sub rsi, r14
mov ebp, r9d
movsd xmm1, qword [rbx]
movsd xmm0, qword [rbx + rdi]
call sub.msvcrt.dll_atan2
movsd qword [rsi + rbx], xmm0
add rbx, 8
sub rbp, 1
jne 0x10009409a
jmp 0x100093c48
cmp r8d, 0x30000000
je 0x100094221
cmp r8d, 0x50000000
je 0x1000941ea
cmp r8d, 0x50200000
je 0x10009418d
cmp r8d, 0x70e00000
je 0x100094146
cmp r8d, 0x71100000
jne 0x10009426a
xor edx, edx
xor ecx, ecx
test esi, esi
je 0x100094123
cmp edx, 3
jae 0x10009413c
mov rax, qword [rsp + rcx*8 + 0x70]
inc edx
inc rcx
cvtsd2ss xmm0, qword [rax]
movss dword [rsp + rcx*4 + 0x54], xmm0
cmp edx, esi
jb 0x100094101
cmp edx, 3
jae 0x10009413c
mov r8d, 3
lea rcx, [rsp + rcx*4 + 0x58]
sub r8d, edx
xor edx, edx
shl r8, 2
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x58]
jmp 0x1000941d4
and qword [r13], 0
shr esi, 1
je 0x10009426a
lea rdx, [rsp + 0x70]
lea r8, [rsp + rsi*8 + 0x70]
mov r9d, esi
mov rax, qword [r8]
mov rcx, qword [rdx]
add r8, 8
add rdx, 8
sub r9, 1
movsd xmm0, qword [rax]
mulsd xmm0, qword [rcx]
addsd xmm0, qword [r13]
movsd qword [r13], xmm0
jne 0x100094160
jmp 0x10009426a
xor edx, edx
xor eax, eax
test r9d, r9d
je 0x1000941b6
cmp edx, 3
jae 0x1000941cf
cvtsd2ss xmm0, qword [r12 + rax*8]
inc edx
inc rax
movss dword [rsp + rax*4 + 0x44], xmm0
cmp edx, r9d
jb 0x100094196
cmp edx, 3
jae 0x1000941cf
mov r8d, 3
lea rcx, [rsp + rax*4 + 0x48]
sub r8d, edx
xor edx, edx
shl r8, 2
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x48]
call fcn.10007a064
unpcklps xmm0, xmm0
cvtps2pd xmm1, xmm0
movsd qword [r13], xmm1
jmp 0x10009426a
and qword [r13], 0
test r9d, r9d
je 0x10009426a
mov rcx, r12
mov rax, r14
mov edx, r9d
sub rcx, r14
movsd xmm0, qword [rax + rcx]
mulsd xmm0, qword [rax]
add rax, 8
sub rdx, 1
addsd xmm0, qword [r13]
movsd qword [r13], xmm0
jne 0x100094200
jmp 0x10009426a
test r9d, r9d
je 0x10009426a
mov rdx, qword [rsp + 0x80]
mov rcx, r12
mov r8, r13
sub rdx, r14
sub rcx, r14
mov rax, r14
sub r8, r14
mov r10d, r9d
movsd xmm0, qword [rax + rcx]
comisd xmm0, xmm8
jb 0x100094255
movsd xmm0, qword [rax]
jmp 0x10009425a
movsd xmm0, qword [rdx + rax]
movsd qword [rax + r8], xmm0
add rax, 8
sub r10, 1
jne 0x100094243
mov ecx, dword [rsp + 0x1110]
mov r11, qword [rsp + 0x1128]
inc ecx
mov dword [rsp + 0x1110], ecx
cmp ecx, dword [rsp + 0x30]
jb 0x10009367f
lea r11, [rsp + 0x10c8]
xor eax, eax
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret