Function at 0x14036ff50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, edx
mov rbx, rcx
mov rax, qword [0x140682ee8]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, edx
shr eax, 3
mov ecx, edx
shr ecx, 8
shr edx, 9
add edx, ecx
add eax, esi
add eax, 0xa8ae8b6f
mov ecx, eax
xor ecx, 0x28ae8b6a
and ecx, eax
xor eax, 0x57517495
lea edi, [rax + rcx*2]
add edi, edx
mov eax, esi
shr eax, 5
mov ecx, esi
shr ecx, 7
mov edx, esi
shr edx, 0xb
add eax, esi
add eax, ecx
lea r15d, [rdx + rax]
add r15d, 7
test rbx, rbx
je 0x14036fff3
mov rcx, rbx
mov edx, 0x67d74421
mov r8d, 0x442876d6
call fcn.140375830
test al, 1
jne 0x14036fff3
cmp qword [rbx + 0x38], 0
je 0x14036fff3
cmp byte [0x140695a48], 0
jne 0x14036fff3
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x14036fff3
cmp qword [rax], rbx
je 0x14037005a
cmp edi, r15d
cmova r15d, edi
mov eax, r15d
not eax
mov ecx, r15d
mov edx, r15d
xor r15d, 0x7ffffff9
and r15d, eax
and eax, 6
and ecx, 0xfffffff9
or ecx, eax
xor edx, 6
or r15d, edx
not r15d
mov eax, ecx
xor eax, 0xb8562a7d
and ecx, 0x38562a7d
lea eax, [rax + rcx*2]
lea esi, [rax + r15*2]
add esi, 0x47a9d583
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1404e9d20
mov eax, esi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rax + 8]
lea ecx, [rax - 0x39]
cmp ecx, 0x38
ja 0x14037009a
movabs rdx, 0x100400400011001
bt rdx, rcx
jae 0x14037009a
mov r12, qword [rbx + 0x28]
mov ebp, dword [r12 + 0x2c]
cmp ebp, 2
je 0x1403700ac
cmp ebp, 1
je 0x1403700c8
test ebp, ebp
je 0x140370225
mov ebp, 6
jmp 0x140370225
cmp eax, 0x2a
je 0x140370075
cmp eax, 0x29a
jne 0x14036fff3
jmp 0x140370075
xor eax, eax
test al, al
xor eax, eax
test al, al
jne 0x1403700b0
mov rbx, qword [r12 + 0x30]
test rbx, rbx
je 0x1403700e2
xor eax, eax
test al, al
jne 0x140370103
jmp 0x1403700ec
xor eax, eax
cmp dword [r12 + 0x94], 0
setne al
lea ebp, [rax*4 + 6]
jmp 0x140370225
mov ebp, 0x12
jmp 0x140370225
lea rax, [fcn.14036ff50]
add eax, eax
add eax, 0x3480
mov ecx, eax
xor ecx, 0xfffffffe
test eax, ecx
je 0x14037012e
lea r14, [rsp + 0x28]
mov bpl, 1
nop dword [rax + rax]
mov rcx, rbx
mov rdx, r14
mov r8d, 0x7bc5ad6f
mov r9d, 0xccf3ecff
call fcn.1401fe370
test bpl, bpl
je 0x140370110
jmp 0x1403700ec
cmp qword [rbx + 0x10], 0
je 0x14037013d
xor eax, eax
test al, al
je 0x140370145
jmp 0x14037014b
mov r14d, 0x12
jmp 0x1403701a8
mov al, 1
test al, al
jne 0x1403701a0
lea r14, [rsp + 0x28]
mov r13b, 1
nop word cs:[rax + rax]
mov ebp, dword [rbx + 0x18]
mov dword [rsp + 0x20], 0xa0c87ec2
mov ecx, ebp
mov edx, ebp
mov r8, r14
mov r9d, 0xe96c4814
call fcn.140375d70
mov edx, dword [rsp + 0x28]
mov dword [rsp + 0x20], 0xe130f639
mov ecx, ebp
mov r8, r14
mov r9d, 0xe55cd2cd
call fcn.1403756b0
test r13b, r13b
je 0x140370160
jmp 0x140370145
mov r14d, dword [rbx + 0x18]
add r14d, 0x14
lea rdx, [rsp + 0x28]
mov rcx, rbx
mov r8d, 0x854e7e29
mov r9d, 0xca466ae1
call fcn.140375860
test al, 1
je 0x1403702d1
lea rdx, [rsp + 0x28]
mov rcx, rbx
mov r8d, 0x7d15bc18
mov r9d, 0x7bc5ad6f
call fcn.140198380
mov rax, qword [rsp + 0x28]
mov r13, qword [rax]
test r13, r13
je 0x140370219
mov eax, r14d
xor eax, 1
and r14d, 1
lea r14d, [rax + r14*2]
movzx ecx, byte [r13]
inc r13
mov edx, 0x2e1689e3
mov r8d, 0xeaf4c472
call fcn.140375620
test al, 1
je 0x1403701ef
lea ebp, [r14 + 2]
cmp dword [rbx + 0x3c], 0
cmove ebp, r14d
lea rcx, [r12 + 0x48]
lea rdx, [rsp + 0x28]
mov r8d, 0x55d062e6
mov r9d, 0x10839315
call fcn.140269130
mov eax, dword [rsp + 0x28]
cmp eax, 0xf
jne 0x1403702a3
cmp dword [r12 + 0x78], 0xf
jne 0x1403702a3
mov eax, esi
shr eax, 0xc
mov ecx, esi
shr ecx, 0xe
mov edx, esi
shr edx, 0x19
add eax, esi
add eax, ecx
add eax, 0xace7eea1
xor edx, eax
mov ecx, edx
not ecx
and ecx, eax
lea eax, [rdx + rcx*2]
mov ecx, eax
xor ecx, 0xb3070768
and eax, 0x33070768
lea edx, [rcx + rax*2]
lea eax, [rcx + rax*2]
add eax, 0xa01109fe
mov ecx, 0x5feef601
sub ecx, edx
xor ecx, eax
and ecx, ebp
xor ecx, eax
and eax, ebp
lea esi, [rcx + rax*2]
jmp 0x14037003a
cmp eax, dword [r12 + 0x78]
cmova edi, r15d
mov dword [rsp + 0x20], 0x7bccdc20
lea r8, [rsp + 0x28]
mov ecx, edi
mov edx, ebp
mov r9d, 0x2e4ff815
call fcn.1401b9250
mov esi, dword [rsp + 0x28]
jmp 0x14037003a
mov rax, qword [rsp + 0x28]
inc r14d
cmp byte [rax], 0
je 0x1403701c9
inc rax
jmp 0x1403702d6