Function at 0x140040a50
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r9
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
neg rsp
sub rsp, 0xffffffffffffff80
neg rsp
mov rbx, rdx
mov rdi, rcx
mov edx, r8d
lea rcx, [rbp - 0x20]
call fcn.14007ba98
mov rdx, rbx
lea rcx, [rbp - 0x20]
call 0x14007c124
test al, al
je 0x140040cdd
mov r8d, 0x6dacb1a4
sub r8d, 0x1a45672f
sub r8d, 0x53674a55
mov byte [rbp - 0x60], 0x50
sub byte [rbp - 0x60], 0x2a
xor byte [rbp - 0x60], 0x26
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.14007ced4
test al, al
je 0x140040cdd
cmp dword [rbp - 0x40], 0x32484346
pushf
mov r15d, 0x2c04307e
sub r15d, 0xfa8b05b
xor r15d, 0x385df84f
xor r15d, 0x2406786d
popf
jne 0x140040b41
cmp dword [rbp - 0x3c], 0x20
jne 0x140040b41
mov esi, dword [rbp - 0x38]
lea rdx, [rbp - 0x58]
mov ebx, dword [rbp - 0x34]
mov rcx, rdi
mov dword [rbp - 0x58], esi
mov dword [rbp - 0x54], ebx
call fcn.140040604
test al, al
je 0x140040cdd
mov eax, dword [rbp - 0x2c]
test eax, eax
jle 0x140040cdd
mov ecx, dword [rbp - 0x30]
mov byte [rbp - 0x60], r15b
jmp 0x140040bac
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.14007d15c
and dword [rbp - 0x50], 0
lea rdx, [rbp - 0x50]
and dword [rbp - 0x4c], 0
lea rcx, [rbp - 0x20]
mov r8d, 0xd43d5df
xor r8d, 0x2b82117a
add r8d, 0x53e93469
sub r8d, 0x7aaaf8fe
call fcn.14007ced4
test al, al
je 0x140040cdd
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.140040604
test al, al
je 0x140040cdd
mov eax, dword [rbp - 0x44]
test eax, eax
jle 0x140040cdd
mov ecx, dword [rbp - 0x48]
mov ebx, dword [rbp - 0x4c]
mov esi, dword [rbp - 0x50]
mov r14d, 0x40d5744
xor r14d, 0x12746a57
add r14d, 0x39f5d98c
mov edx, 0x24ca3e6e
add edx, 0x1d378f36
sub edx, 0x4201cabc
xor esi, r14d
mov qword [rbp - 0x50], rdx
xor eax, r14d
xor ebx, r14d
xor ecx, r14d
mov r8, rdi
mov dword [rdx + rdi], esi
mov dword [rdx + rdi + 4], ebx
mov dword [rdi + 0x2f4], ecx
mov dword [rdi + 0x30c], eax
mov esi, dword [rdi + 0x2d8]
and esi, 0x2000
mov eax, esi
mov dword [rbp - 0x58], esi
neg eax
sbb r13, r13
and r13, 0xffffffffffff0100
sub r13, 0x68bfa2d5
add r13, 0x68c0a2d4
mov r12, r13
shl r12, 4
cmp qword [rdi + 0x300], 0
jne 0x140040c74
mov edx, 0x2e66c1e8
sub edx, 0x9bce896
xor edx, 0x24a9d942
mov rcx, r12
call fcn.140092b30
mov rcx, rax
mov rdx, r13
movaps xmm0, xmmword [0x1400ef460]
movups xmmword [rcx], xmm0
lea rcx, [rcx + 0x10]
sub rdx, r15
jne 0x140040c56
mov qword [rdi + 0x300], rax
mov edx, 0xad81e3f
xor edx, 0x3d0aec8d
add edx, 0x2bfddea4
sub edx, 0x63d0d146
mov rcx, r12
call fcn.140092b30
mov rbx, rax
test rax, rax
je 0x140040cdd
cmp byte [rbp - 0x60], 0
je 0x140040df2
movsxd rcx, dword [rbp - 0x28]
call fcn.140092ac0
mov r8d, dword [rbp - 0x28]
lea rcx, [rbp - 0x20]
mov rdx, rax
mov rsi, rax
call fcn.14007ced4
test al, al
jne 0x140040d0d
mov rcx, rbx
call fcn.140092ae0
mov rcx, rsi
call fcn.140092ad0
xor r15b, r15b
lea rcx, [rbp - 0x20]
call fcn.14007bb78
lea r11, [rsp + 0x80]
mov al, r15b
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
neg dword [rbp - 0x58]
mov rdx, rbx
mov r8d, dword [rbp - 0x28]
mov rcx, rsi
sbb r9d, r9d
and r9d, 0xfff01000
sub r9d, 0x47593598
add r9d, 0x47693588
call fcn.14008e870
movsxd rcx, eax
cmp rcx, r12
jne 0x140040ccd
mov rcx, rsi
call fcn.140092ad0
xor ecx, ecx
movups xmm0, xmmword [rcx + rbx]
mov rax, qword [rdi + 0x300]
xorps xmm0, xmmword [0x1400ef460]
movups xmmword [rcx + rax], xmm0
lea rcx, [rcx + 0x10]
sub r13, r15
jne 0x140040d4d
mov rcx, rbx
call fcn.140092ae0
mov rax, qword [rbp - 0x50]
lea rcx, [r13 - 1]
mov esi, dword [rdi + 0x2ec]
xor esi, r14d
mov eax, dword [rax + rdi]
xor eax, r14d
imul esi, eax
lea eax, [r13 + 4]
movsxd r14, esi
mul r14
cmovo rax, rcx
mov rcx, rax
call fcn.140092ac0
mov rbx, rax
test rax, rax
je 0x140040cdd
cmp byte [rbp - 0x60], r13b
je 0x140040e5b
movsxd rcx, dword [rbp - 0x24]
call fcn.140092ac0
mov r8d, dword [rbp - 0x24]
lea rcx, [rbp - 0x20]
mov rdx, rax
mov rdi, rax
call fcn.14007ced4
mov rcx, rdi
test al, al
jne 0x140040e26
call fcn.140092ad0
mov rcx, rbx
jmp 0x140040cd8
neg esi
lea rcx, [rbp - 0x20]
mov rdx, rbx
sbb r8d, r8d
and r8d, 0xfff01000
add r8d, 0xffff0
call fcn.14007ced4
test al, al
jne 0x140040d4b
mov rcx, rbx
call fcn.140092ae0
jmp 0x140040cdd
mov r8d, dword [rbp - 0x24]
lea r9d, [rsi*4]
mov rdx, rbx
call fcn.14008e870
movsxd rcx, eax
lea rax, [r14*4]
cmp rcx, rax
mov rcx, rdi
jne 0x140040de5
call fcn.140092ad0
jmp 0x140040e77
lea r8d, [rsi*4]
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.14007ced4
test al, al
je 0x140040dea
mov rax, qword [rbp + 0x48]
mov qword [rax], rbx
jmp 0x140040ce0