Function at 0x140046950
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
lea rbp, [r11 - 0x5f]
sub rsp, 0xe0
mov rsi, qword [0x14024ad10]
mov r8d, ecx
mov rax, qword [rsi + 0x3ea8]
mov byte [rax + 0x98], 1
mov rdi, qword [rsi + 0x3ea8]
cmp byte [rdi + 0x9b], 0
jne 0x140046b8a
mov qword [r11 + 8], rbx
movaps xmmword [r11 - 0x28], xmm6
movaps xmmword [r11 - 0x38], xmm7
movaps xmmword [r11 - 0x48], xmm8
test r8b, 2
je 0x140046b95
movss xmm7, dword [rdi + 0xe0]
lea rcx, [rbp + 0x6f]
movss xmm8, dword [rdi + 0xe4]
movss xmm1, dword [0x1400b53e0]
movaps xmmword [r11 - 0x58], xmm9
movaps xmm9, xmm7
movaps xmmword [r11 - 0x68], xmm10
movaps xmm10, xmm8
addss xmm10, dword [rdi + 0x10c]
movaps xmmword [r11 - 0x78], xmm11
movss xmm11, dword [0x1400b5284]
addss xmm9, xmm11
mov qword [rbp + 0x6f], 0
movaps xmm6, xmm9
unpcklps xmm6, xmm10
call fcn.1400274e0
mov r10, qword [0x14024ad10]
xor ebx, ebx
movaps xmm0, xmm7
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm8
mov eax, dword [r10 + 0x3f58]
mov dword [r10 + 0x3f70], ebx
mov dword [r10 + 0x3f74], eax
mov dword [r10 + 0x3f78], ebx
mov dword [r10 + 0x3f5c], ebx
shufps xmm0, xmm0, 0xe1
unpcklpd xmm0, xmm6
movups xmmword [r10 + 0x3f7c], xmm0
movups xmmword [r10 + 0x3f8c], xmm0
mov rax, qword [r10 + 0x3ea8]
movups xmmword [rbp - 0x69], xmm0
comiss xmm10, dword [rax + 0x224]
jbe 0x140046a94
movss xmm0, dword [rax + 0x22c]
comiss xmm0, xmm8
jbe 0x140046a94
comiss xmm9, dword [rax + 0x220]
jbe 0x140046a94
movss xmm0, dword [rax + 0x228]
comiss xmm0, xmm7
ja 0x140046aa1
cmp byte [r10 + 0x53d4], bl
je 0x140046b4e
mov r8b, 1
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 0x69]
call fcn.140026a70
test al, al
je 0x140046ac0
mov dword [r10 + 0x3f78], 1
movups xmm0, xmmword [r10 + 0x3a70]
lea rcx, [rbp - 0x69]
movss dword [rbp + 0x6f], xmm7
movups xmmword [rbp - 0x69], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r10 + 0x37f8]
movss dword [rbp + 0x73], xmm10
movss dword [rbp + 0x77], xmm7
movss dword [rbp - 0x5d], xmm0
movss dword [rbp + 0x7b], xmm8
call fcn.14001a3e0
mov rcx, qword [rdi + 0x280]
lea rdx, [rbp + 0x77]
mov r9d, eax
movss dword [rsp + 0x20], xmm11
lea r8, [rbp + 0x6f]
call fcn.14003a280
cmp byte [rsi + 0x53d4], bl
je 0x140046b4e
xor eax, eax
mov word [rbp + 0x6f], 0x96c9
mov byte [rbp + 0x71], al
nop
movsxd rcx, ebx
lea eax, [rbx - 0x17]
inc ebx
xor byte [rbp + rcx + 0x6f], al
cmp ebx, 2
jb 0x140046b30
lea rcx, [rbp + 0x6f]
mov byte [rbp + 0x71], 0
call fcn.14002d650
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xc0]
mov rbx, qword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0xb0]
add rsp, 0xe0
pop rdi
pop rsi
pop rbp
ret
test r8b, 1
je 0x140046b69
movss xmm6, dword [rdi + 0x18]
movsxd rax, dword [rsi + 0x4070]
movaps xmm7, xmm6
mov qword [rsp + 0x118], r14
addss xmm7, dword [rdi + 0x20]
test eax, eax
jle 0x140046bda
mov rcx, qword [rsi + 0x4078]
lea rdx, [rax + rax*2]
mov eax, dword [rdi + 8]
add rdx, rdx
cmp dword [rcx + rdx*8 - 0x30], eax
jne 0x140046bda
addss xmm6, dword [rdi + 0x124]
mov rdx, qword [rsi + 0x4308]
test rdx, rdx
je 0x140046bfe
movsxd rax, dword [rdx + 0x7c]
imul rcx, rax, 0x68
mov rax, qword [rdx + 0x18]
movss xmm6, dword [rcx + rax + 8]
movss xmm7, dword [rcx + rax + 0xc]
xor ebx, ebx
test r8b, 4
je 0x140046c19
mov r14, qword [rdi + 0x190]
test r14, r14
je 0x140046c1c
call fcn.140043150
jmp 0x140046c1c
mov r14, rbx
movss xmm0, dword [rdi + 0xe4]
lea rcx, [rbp + 0x6f]
movss xmm8, dword [0x1400b5284]
movaps xmm1, xmm0
addss xmm1, xmm8
movss dword [rbp - 0x65], xmm0
movaps xmm0, xmm7
movss dword [rbp - 0x69], xmm6
mov qword [rbp + 0x6f], rbx
unpcklps xmm0, xmm1
movss xmm1, dword [0x1400b53e0]
movsd qword [rbp - 0x61], xmm0
call fcn.1400274e0
mov r10, qword [0x14024ad10]
mov eax, dword [r10 + 0x3f58]
mov dword [r10 + 0x3f70], ebx
movups xmm0, xmmword [rbp - 0x69]
movups xmmword [r10 + 0x3f7c], xmm0
movups xmm1, xmmword [rbp - 0x69]
mov dword [r10 + 0x3f74], eax
mov dword [r10 + 0x3f78], ebx
movups xmmword [r10 + 0x3f8c], xmm1
mov dword [r10 + 0x3f5c], ebx
mov rax, qword [r10 + 0x3ea8]
movss xmm0, dword [rbp - 0x5d]
movss xmm6, dword [rbp - 0x61]
movss xmm7, dword [rbp - 0x65]
comiss xmm0, dword [rax + 0x224]
jbe 0x140046ce4
movss xmm0, dword [rax + 0x22c]
comiss xmm0, xmm7
jbe 0x140046ce4
comiss xmm6, dword [rax + 0x220]
jbe 0x140046ce4
movss xmm0, dword [rax + 0x228]
comiss xmm0, dword [rbp - 0x69]
ja 0x140046cf1
cmp byte [r10 + 0x53d4], bl
je 0x140046db6
mov r8b, 1
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 0x69]
call fcn.140026a70
test al, al
je 0x140046d1a
mov dword [r10 + 0x3f78], 1
movss xmm6, dword [rbp - 0x61]
movss xmm7, dword [rbp - 0x65]
movups xmm0, xmmword [r10 + 0x3a70]
lea rcx, [rbp - 0x59]
movss dword [rbp + 0x6f], xmm6
movups xmmword [rbp - 0x59], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r10 + 0x37f8]
movss dword [rbp + 0x73], xmm7
movss dword [rbp - 0x4d], xmm0
call fcn.14001a3e0
mov rcx, qword [rdi + 0x280]
lea rdx, [rbp - 0x69]
mov r9d, eax
movss dword [rsp + 0x20], xmm8
lea r8, [rbp + 0x6f]
call fcn.14003a280
cmp byte [rsi + 0x53d4], bl
je 0x140046db6
movdqa xmm0, xmmword [0x1400b6600]
movdqa xmm1, xmmword [0x1400b56b0]
movdqu xmmword [rbp - 0x49], xmm0
mov word [rbp - 0x29], 3
movdqu xmmword [rbp - 0x39], xmm1
movsxd rcx, ebx
lea eax, [rbx - 0x17]
inc ebx
xor byte [rbp + rcx - 0x49], al
cmp ebx, 0x21
jb 0x140046d91
xor r8d, r8d
mov byte [rbp - 0x28], 0
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x69]
call fcn.14002d670
test r14, r14
je 0x140046dca
call fcn.140043220
mov eax, dword [rdi + 0xe4]
mov dword [r14 + 0x1c], eax
mov r14, qword [rsp + 0x118]
jmp 0x140046b69