Function at 0x140049870
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 [0x14011d300]
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 0x140049ee1
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.14001b4e0
mov ebx, eax
call fcn.140028de0
movaps xmm7, xmm0
mov rcx, r14
cmp r14, 0xffffffffffffffff
jae 0x14004991b
movzx edx, byte [rcx]
test dl, dl
je 0x14004991b
cmp dl, 0x23
jne 0x140049912
cmp byte [rcx + 1], dl
je 0x14004991b
inc rcx
cmp rcx, 0xffffffffffffffff
jb 0x140049901
movss xmm1, dword [rdi + 0x3c18]
xorps xmm6, xmm6
cmp r14, rcx
jne 0x140049931
xorps xmm8, xmm8
jmp 0x140049986
movss xmm0, dword [0x1400ba470]
lea rdx, [rsp + 0x40]
movss xmm3, dword [0x1400ba448]
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.14003fa10
movss xmm0, dword [rsp + 0x40]
addss xmm0, dword [0x1400ba30c]
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 0x1400499ec
movaps xmm1, xmm8
addss xmm1, dword [rdi + 0x384c]
jmp 0x1400499ef
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.140028980
lea r8, [rsp + 0x48]
mov edx, ebx
lea rcx, [rsp + 0x58]
mov r9d, 0x100
call fcn.140028af0
test al, al
je 0x140049ee1
mov r14, qword [rbp + 0x77]
test r14, r14
jne 0x140049a6d
movsxd rax, dword [rbp + 0x4f]
lea r14, [0x1400eb6e0]
shl rax, 5
mov r14, qword [rax + r14]
jmp 0x140049ae5
cmp dword [rbp + 0x4f], 4
jne 0x140049ae5
xor eax, eax
mov word [rbp + 0x7f], 0xf2b0
xor ecx, ecx
mov byte [rbp + 0x81], al
xor edx, edx
nop word [rax + rax]
lea eax, [rcx - 0x6b]
inc ecx
xor byte [rbp + rdx + 0x7f], al
movsxd rdx, ecx
cmp rdx, 2
jb 0x140049a90
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 0x140049ad5
inc rax
test edx, edx
jne 0x140049ac0
test r8d, r8d
je 0x140049ae5
mov rcx, r14
call fcn.140048db0
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.14001d980
mov rcx, qword [0x14011d300]
movzx edx, al
mov byte [rbp + 0x7f], al
cmp dword [rcx + 0x3ef4], ebx
jne 0x140049b2a
cmp dword [rcx + 0x52c0], ebx
je 0x140049c47
mov r15d, dword [rdi + 0x3f78]
xor al, al
and r15d, 0x100
test dl, dl
je 0x140049b4b
cmp byte [rdi + 0x36b0], al
je 0x140049b4b
mov r13b, 1
jmp 0x140049b52
xor r13b, r13b
test dl, dl
je 0x140049b61
cmp word [rdi + 0x36ba], 2
jne 0x140049b61
mov r12b, 1
jmp 0x140049b64
xor r12b, r12b
test r15d, r15d
jne 0x140049b83
test r13b, r13b
jne 0x140049b83
test r12b, r12b
jne 0x140049b83
cmp dword [rdi + 0x40c8], ebx
je 0x140049b83
cmp dword [rdi + 0x40d4], ebx
jne 0x140049bd5
mov rdx, rsi
mov ecx, ebx
call fcn.14001d840
call fcn.14002a960
mov rcx, rsi
call fcn.1400275a0
mov dword [rdi + 0x3f08], 3
test r15d, r15d
jne 0x140049bc8
test r13b, r13b
je 0x140049bb7
cmp byte [rdi + 0xdac], r15b
jne 0x140049bc8
test r12b, r12b
jne 0x140049bc8
cmp dword [rdi + 0x40d4], ebx
je 0x140049bc8
xor al, al
jmp 0x140049bca
mov al, 1
movzx edx, byte [rbp + 0x7f]
mov rcx, qword [0x14011d300]
cmp byte [rdi + 0x74], 0
je 0x140049c43
test al, al
jne 0x140049c47
cmp dword [rdi + 0x3ef4], ebx
jne 0x140049cc3
test dl, dl
je 0x140049cb4
cmp byte [rdi + 0x36ce], al
je 0x140049cb4
movss xmm1, dword [rdi + 0x38]
mulss xmm1, dword [0x1400ba2c4]
comiss xmm6, xmm1
jbe 0x140049c16
movss xmm1, dword [rcx + 0x38]
movss xmm0, dword [rcx + 0x3708]
mulss xmm1, xmm1
comiss xmm0, xmm1
jae 0x140049cb4
mov dword [rdi + 0x40d4], ebx
mov dword [rdi + 0x40c8], ebx
mov dword [rdi + 0x40d8], 1
jmp 0x140049c47
test al, al
je 0x140049cb4
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.14004a620
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 0x140049cc3
mov eax, 9
jmp 0x140049cce
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.14001c5b0
lea rcx, [rsp + 0x58]
call fcn.14001b880
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.14001c2c0
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.140049440
mov rsi, qword [0x14011d300]
movzx r12d, al
test al, al
je 0x140049d7e
or dword [rsi + 0x3f78], 4
mov word [rsi + 0x3f04], 0x101
cmp r15d, 4
je 0x140049dae
cmp r15d, 8
jne 0x140049daa
movss xmm3, dword [r13]
lea edx, [r15 + 0x38]
cvtps2pd xmm3, xmm3
mov r8, r14
lea rcx, [rbp - 0x79]
movq r9, xmm3
call fcn.14001b3d0
jmp 0x140049dc3
xor eax, eax
jmp 0x140049dca
mov r9d, dword [r13]
lea rcx, [rbp - 0x79]
mov r8, r14
mov edx, 0x40
call fcn.14001b3d0
mov rsi, qword [0x14011d300]
cdqe
lea rcx, [rbp - 0x79]
add rcx, rax
cmp byte [rdi + 0x53d4], 0
je 0x140049df8
lea rax, [0x1400b97b4]
mov qword [rsi + 0x53f0], rax
lea rax, [0x1400b97b0]
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 0x140049e3b
movzx eax, byte [rbx]
test al, al
je 0x140049e3b
cmp al, 0x23
jne 0x140049e33
cmp byte [rbx + 1], al
je 0x140049e3b
inc rbx
cmp rbx, rcx
jb 0x140049e23
lea rcx, [rbp - 0x79]
cmp ebx, ecx
je 0x140049e9f
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.14001bf60
cmp byte [rsi + 0x53d4], 0
je 0x140049e9f
mov r8, rbx
lea rdx, [rbp - 0x79]
lea rcx, [rsp + 0x48]
call fcn.14002eb10
comiss xmm8, xmm6
jbe 0x140049ed8
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.14001bde0
movzx eax, r12b
jmp 0x140049c7b
xor al, al
jmp 0x140049c93