Function at 0x14003e664
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
sub rsp, 0x9d07e71
add rsp, 0x9d07df1
mov rbx, rdx
mov rdi, rcx
mov edx, r8d
lea rcx, [rbp - 0x20]
call fcn.14009cabc
mov rdx, rbx
lea rcx, [rbp - 0x20]
call 0x14009d14c
test al, al
je 0x14003e8f5
mov r8d, 0x1a7ef973
add r8d, 0x45f384f7
xor r8d, 0x60727e4a
mov byte [rbp - 0x60], 0x6a
sub byte [rbp - 0x60], 0x41
sub byte [rbp - 0x60], 0x29
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.14009df48
test al, al
je 0x14003e8f5
cmp dword [rbp - 0x40], 0x32484346
pushf
mov r15d, 0x5a3490
xor r15d, 0x3b062c5a
add r15d, 0x2543844f
sub r15d, 0x609f9d18
popf
jne 0x14003e759
cmp dword [rbp - 0x3c], 0x20
jne 0x14003e759
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.14003e1b8
test al, al
je 0x14003e8f5
mov eax, dword [rbp - 0x2c]
test eax, eax
jle 0x14003e8f5
mov ecx, dword [rbp - 0x30]
mov byte [rbp - 0x60], r15b
jmp 0x14003e7bd
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.14009e1dc
and dword [rbp - 0x50], 0
lea rdx, [rbp - 0x50]
and dword [rbp - 0x4c], 0
lea rcx, [rbp - 0x20]
mov r8d, 0x1de1b90d
xor r8d, 0x30dc28db
sub r8d, 0x2d3d91c6
call fcn.14009df48
test al, al
je 0x14003e8f5
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.14003e1b8
test al, al
je 0x14003e8f5
mov eax, dword [rbp - 0x44]
test eax, eax
jle 0x14003e8f5
mov ecx, dword [rbp - 0x48]
mov ebx, dword [rbp - 0x4c]
mov esi, dword [rbp - 0x50]
mov r14d, 0x2399fe99
xor r14d, 0xe791a57
xor r14d, 0x32106aed
add r14d, 0x2e40d8e7
mov edx, 0x68680d7
add edx, 0xab5eb6
add edx, 0x3d5184d5
xor edx, 0x4483668a
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
add r13, 0x150b8b2a
sub r13, 0x150a8b2b
mov r12, r13
shl r12, 4
cmp qword [rdi + 0x300], 0
jne 0x14003e892
mov edx, 0x4f9276c9
xor edx, 0x47eb597c
sub edx, 0x8792fa5
mov rcx, r12
call fcn.1400b9750
mov rcx, rax
mov rdx, r13
movaps xmm0, xmmword [0x140130520]
movups xmmword [rcx], xmm0
lea rcx, [rcx + 0x10]
sub rdx, r15
jne 0x14003e874
mov qword [rdi + 0x300], rax
mov edx, 0x78c6e2ed
xor edx, 0x61405f7
xor edx, 0x7ed2e70a
mov rcx, r12
call fcn.1400b9750
mov rbx, rax
test rax, rax
je 0x14003e8f5
cmp byte [rbp - 0x60], 0
je 0x14003ea0a
movsxd rcx, dword [rbp - 0x28]
call fcn.1400b96e0
mov r8d, dword [rbp - 0x28]
lea rcx, [rbp - 0x20]
mov rdx, rax
mov rsi, rax
call fcn.14009df48
test al, al
jne 0x14003e925
mov rcx, rbx
call fcn.1400b9700
mov rcx, rsi
call fcn.1400b96f0
xor r15b, r15b
lea rcx, [rbp - 0x20]
call fcn.14009cba4
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
add r9d, 0x74dae0c4
sub r9d, 0x74cae0d4
call fcn.1400a83e0
movsxd rcx, eax
cmp rcx, r12
jne 0x14003e8e5
mov rcx, rsi
call fcn.1400b96f0
xor ecx, ecx
movups xmm0, xmmword [rcx + rbx]
mov rax, qword [rdi + 0x300]
xorps xmm0, xmmword [0x140130520]
movups xmmword [rcx + rax], xmm0
lea rcx, [rcx + 0x10]
sub r13, r15
jne 0x14003e965
mov rcx, rbx
call fcn.1400b9700
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.1400b96e0
mov rbx, rax
test rax, rax
je 0x14003e8f5
cmp byte [rbp - 0x60], r13b
je 0x14003ea73
movsxd rcx, dword [rbp - 0x24]
call fcn.1400b96e0
mov r8d, dword [rbp - 0x24]
lea rcx, [rbp - 0x20]
mov rdx, rax
mov rdi, rax
call fcn.14009df48
mov rcx, rdi
test al, al
jne 0x14003ea3e
call fcn.1400b96f0
mov rcx, rbx
jmp 0x14003e8f0
neg esi
lea rcx, [rbp - 0x20]
mov rdx, rbx
sbb r8d, r8d
and r8d, 0xfff01000
add r8d, 0xffff0
call fcn.14009df48
test al, al
jne 0x14003e963
mov rcx, rbx
call fcn.1400b9700
jmp 0x14003e8f5
mov r8d, dword [rbp - 0x24]
lea r9d, [rsi*4]
mov rdx, rbx
call fcn.1400a83e0
movsxd rcx, eax
lea rax, [r14*4]
cmp rcx, rax
mov rcx, rdi
jne 0x14003e9fd
call fcn.1400b96f0
jmp 0x14003ea8f
lea r8d, [rsi*4]
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.14009df48
test al, al
je 0x14003ea02
mov rax, qword [rbp + 0x48]
mov qword [rax], rbx
jmp 0x14003e8f8