Function at 0x140049950
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [r11 - 0x3f]
sub rsp, 0x100
mov rdi, qword [0x140124520]
mov r14, rcx
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x68], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmm9, xmm3
mov rax, qword [rdi + 0x3ea8]
mov byte [rax + 0x98], 1
mov rsi, qword [rdi + 0x3ea8]
cmp byte [rsi + 0x9b], 0
jne 0x140049fc1
movsxd rdx, dword [rsi + 0xd0]
mov rax, qword [rsi + 0xd8]
movaps xmmword [r11 - 0x58], xmm7
mov r8d, dword [rax + rdx*4 - 4]
xor edx, edx
call fcn.14001b5c0
mov ebx, eax
call fcn.140028ec0
movaps xmm7, xmm0
mov rcx, r14
cmp r14, 0xffffffffffffffff
jae 0x1400499fb
movzx edx, byte [rcx]
test dl, dl
je 0x1400499fb
cmp dl, 0x23
jne 0x1400499f2
cmp byte [rcx + 1], dl
je 0x1400499fb
inc rcx
cmp rcx, 0xffffffffffffffff
jb 0x1400499e1
movss xmm1, dword [rdi + 0x3c18]
xorps xmm6, xmm6
cmp r14, rcx
jne 0x140049a11
xorps xmm8, xmm8
jmp 0x140049a66
movss xmm0, dword [0x1400bc4d0]
lea rdx, [rsp + 0x40]
movss xmm3, dword [0x1400bc4a8]
movaps xmm2, xmm1
mov qword [rsp + 0x30], rcx
mov rcx, qword [rdi + 0x3c10]
mov qword [rsp + 0x28], r14
movss dword [rsp + 0x20], xmm0
call fcn.14003faf0
movss xmm0, dword [rsp + 0x40]
addss xmm0, dword [0x1400bc350]
movss xmm1, dword [rsp + 0x44]
cvttss2si eax, xmm0
movd xmm8, eax
cvtdq2ps xmm8, xmm8
comiss xmm8, xmm6
movss xmm3, dword [rsi + 0xe0]
movss xmm4, dword [rdi + 0x3838]
movaps xmm2, xmm3
addss xmm2, xmm7
movaps xmm0, xmm4
movaps xmm7, xmmword [rsp + 0xd0]
addss xmm0, xmm4
addss xmm0, xmm1
addss xmm0, dword [rsi + 0xe4]
movss dword [rsp + 0x48], xmm3
movss xmm5, dword [rsi + 0xe4]
movss dword [rsp + 0x4c], xmm5
movss dword [rsp + 0x50], xmm2
movss dword [rsp + 0x54], xmm0
jbe 0x140049acc
movaps xmm1, xmm8
addss xmm1, dword [rdi + 0x384c]
jmp 0x140049acf
xorps xmm1, xmm1
addss xmm1, xmm2
movss dword [rsp + 0x58], xmm3
addss xmm0, xmm6
movss dword [rsp + 0x5c], xmm5
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x60], xmm1
subss xmm1, xmm3
movss dword [rsp + 0x64], xmm0
subss xmm0, xmm5
movss dword [rsp + 0x40], xmm1
movaps xmm1, xmm4
movss dword [rsp + 0x44], xmm0
call fcn.140028a60
lea r8, [rsp + 0x48]
mov edx, ebx
lea rcx, [rsp + 0x58]
mov r9d, 0x100
call fcn.140028bd0
test al, al
je 0x140049fc1
mov r14, qword [rbp + 0x77]
test r14, r14
jne 0x140049b4d
movsxd rax, dword [rbp + 0x4f]
lea r14, [0x1400ed6e0]
shl rax, 5
mov r14, qword [rax + r14]
jmp 0x140049bc5
cmp dword [rbp + 0x4f], 4
jne 0x140049bc5
xor eax, eax
mov word [rbp + 0x7f], 0xbbfb
xor ecx, ecx
mov byte [rbp + 0x81], al
xor edx, edx
nop word [rax + rax]
lea eax, [rcx - 0x22]
inc ecx
xor byte [rbp + rdx + 0x7f], al
movsxd rdx, ecx
cmp rdx, 2
jb 0x140049b70
lea r9, [rbp + 0x7f]
mov byte [rbp + 0x81], 0
sub r9, r14
mov rax, r14
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rax]
movzx edx, byte [rax + r9]
sub r8d, edx
jne 0x140049bb5
inc rax
test edx, edx
jne 0x140049ba0
test r8d, r8d
je 0x140049bc5
mov rcx, r14
call fcn.140048e90
mov r14, rax
mov qword [rsp + 0x148], r12
lea rcx, [rsp + 0x48]
mov qword [rsp + 0xf8], r13
mov edx, ebx
mov qword [rsp + 0xf0], r15
call fcn.14001da60
mov rcx, qword [0x140124520]
movzx edx, al
mov byte [rbp + 0x7f], al
cmp dword [rcx + 0x3ef4], ebx
jne 0x140049c0a
cmp dword [rcx + 0x52c0], ebx
je 0x140049d27
mov r15d, dword [rdi + 0x3f78]
xor al, al
and r15d, 0x100
test dl, dl
je 0x140049c2b
cmp byte [rdi + 0x36b0], al
je 0x140049c2b
mov r13b, 1
jmp 0x140049c32
xor r13b, r13b
test dl, dl
je 0x140049c41
cmp word [rdi + 0x36ba], 2
jne 0x140049c41
mov r12b, 1
jmp 0x140049c44
xor r12b, r12b
test r15d, r15d
jne 0x140049c63
test r13b, r13b
jne 0x140049c63
test r12b, r12b
jne 0x140049c63
cmp dword [rdi + 0x40c8], ebx
je 0x140049c63
cmp dword [rdi + 0x40d4], ebx
jne 0x140049cb5
mov rdx, rsi
mov ecx, ebx
call fcn.14001d920
call fcn.14002aa40
mov rcx, rsi
call fcn.140027680
mov dword [rdi + 0x3f08], 3
test r15d, r15d
jne 0x140049ca8
test r13b, r13b
je 0x140049c97
cmp byte [rdi + 0xdac], r15b
jne 0x140049ca8
test r12b, r12b
jne 0x140049ca8
cmp dword [rdi + 0x40d4], ebx
je 0x140049ca8
xor al, al
jmp 0x140049caa
mov al, 1
movzx edx, byte [rbp + 0x7f]
mov rcx, qword [0x140124520]
cmp byte [rdi + 0x74], 0
je 0x140049d23
test al, al
jne 0x140049d27
cmp dword [rdi + 0x3ef4], ebx
jne 0x140049da3
test dl, dl
je 0x140049d94
cmp byte [rdi + 0x36ce], al
je 0x140049d94
movss xmm1, dword [rdi + 0x38]
mulss xmm1, dword [0x1400bc304]
comiss xmm6, xmm1
jbe 0x140049cf6
movss xmm1, dword [rcx + 0x38]
movss xmm0, dword [rcx + 0x3708]
mulss xmm1, xmm1
comiss xmm0, xmm1
jae 0x140049d94
mov dword [rdi + 0x40d4], ebx
mov dword [rdi + 0x40c8], ebx
mov dword [rdi + 0x40d8], 1
jmp 0x140049d27
test al, al
je 0x140049d94
mov rax, qword [rbp + 0x57]
lea rcx, [rsp + 0x48]
mov r9d, dword [rbp + 0x4f]
mov edx, ebx
mov r8, qword [rbp + 0x47]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
call fcn.14004a700
mov r13, qword [rsp + 0xf8]
mov r12, qword [rsp + 0x148]
mov r15, qword [rsp + 0xf0]
lea r11, [rsp + 0x100]
movaps xmm6, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x40]
movaps xmm9, xmmword [r11 - 0x50]
mov rsp, r11
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp dword [rdi + 0x3ef4], ebx
jne 0x140049da3
mov eax, 9
jmp 0x140049dae
xor eax, eax
test dl, dl
setne al
add rax, 7
add rax, rax
mov r8d, 1
mov edx, ebx
movups xmm0, xmmword [rcx + rax*8 + 0x38c0]
movups xmmword [rsp + 0x58], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rcx + 0x37f8]
lea rcx, [rsp + 0x48]
movss dword [rsp + 0x64], xmm0
call fcn.14001c690
lea rcx, [rsp + 0x58]
call fcn.14001b960
movss xmm0, dword [rdi + 0x383c]
mov r8d, eax
mov rdx, qword [rsp + 0x50]
mov r9b, 1
mov rcx, qword [rsp + 0x48]
movss dword [rsp + 0x20], xmm0
call fcn.14001c3a0
mov rax, qword [rbp + 0x6f]
movaps xmm3, xmm9
mov r13, qword [rbp + 0x57]
mov ecx, ebx
mov r15d, dword [rbp + 0x4f]
mov r8, r13
mov qword [rsp + 0x30], r14
mov edx, r15d
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x67]
mov qword [rsp + 0x20], rax
call fcn.140049520
mov rsi, qword [0x140124520]
movzx r12d, al
test al, al
je 0x140049e5e
or dword [rsi + 0x3f78], 4
mov word [rsi + 0x3f04], 0x101
cmp r15d, 4
je 0x140049e8e
cmp r15d, 8
jne 0x140049e8a
movss xmm3, dword [r13]
lea edx, [r15 + 0x38]
cvtps2pd xmm3, xmm3
mov r8, r14
lea rcx, [rbp - 0x79]
movq r9, xmm3
call fcn.14001b4b0
jmp 0x140049ea3
xor eax, eax
jmp 0x140049eaa
mov r9d, dword [r13]
lea rcx, [rbp - 0x79]
mov r8, r14
mov edx, 0x40
call fcn.14001b4b0
mov rsi, qword [0x140124520]
cdqe
lea rcx, [rbp - 0x79]
add rcx, rax
cmp byte [rdi + 0x53d4], 0
je 0x140049ed8
lea rax, [0x1400bb7ec]
mov qword [rsi + 0x53f0], rax
lea rax, [0x1400bb7e8]
mov qword [rsi + 0x53f8], rax
test rcx, rcx
mov dword [rsp + 0x40], 0x3f000000
mov rax, 0xffffffffffffffff
mov dword [rsp + 0x44], 0x3f000000
cmove rcx, rax
lea rbx, [rbp - 0x79]
lea rax, [rbp - 0x79]
cmp rax, rcx
jae 0x140049f1b
movzx eax, byte [rbx]
test al, al
je 0x140049f1b
cmp al, 0x23
jne 0x140049f13
cmp byte [rbx + 1], al
je 0x140049f1b
inc rbx
cmp rbx, rcx
jb 0x140049f03
lea rcx, [rbp - 0x79]
cmp ebx, ecx
je 0x140049f7f
mov rcx, qword [rsi + 0x3ea8]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], 0
lea r9, [rbp - 0x79]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x50]
mov qword [rsp + 0x28], 0
lea rdx, [rsp + 0x48]
mov rcx, qword [rcx + 0x280]
mov qword [rsp + 0x20], rbx
call fcn.14001c040
cmp byte [rsi + 0x53d4], 0
je 0x140049f7f
mov r8, rbx
lea rdx, [rbp - 0x79]
lea rcx, [rsp + 0x48]
call fcn.14002ebf0
comiss xmm8, xmm6
jbe 0x140049fb8
movss xmm0, dword [rsp + 0x50]
mov r9b, 1
movss xmm1, dword [rsp + 0x4c]
xor r8d, r8d
addss xmm0, dword [rdi + 0x384c]
addss xmm1, dword [rdi + 0x3838]
mov rdx, qword [rbp + 0x47]
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.14001bec0
movzx eax, r12b
jmp 0x140049d5b
xor al, al
jmp 0x140049d73