Function at 0x140112e90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x30], xmm6
mov qword [rbp + 0x28], 0xfffffffffffffffe
mov ebx, r8d
mov rsi, rcx
mov eax, dword [0x14053fca0]
mov ecx, eax
xor ecx, 0x2ea84ce
and eax, 0x2ea84ce
lea eax, [rcx + rax*2]
lea rcx, [fcn.140112e90]
add ecx, ecx
add ecx, 0x40
mov edx, ecx
not edx
mov r8d, edx
and r8d, eax
not eax
and ecx, eax
or ecx, r8d
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x140112f57
mov dword [rsp + 0x30], 0x1a70a84e
mov dword [rsp + 0x28], 0x87946d42
mov qword [rsp + 0x20], 0
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.1401157f0
mov rdi, rax
lea rcx, [rbp - 0x10]
mov edx, 0xbf5848f2
call fcn.1401146d0
mov qword [rsi + 0x10], 0
xorps xmm0, xmm0
movups xmmword [rsi + 0x20], xmm0
mov qword [rbp + 0x20], rsi
mov eax, dword [0x1405b350c]
cmp eax, 0x12
jl 0x140112fde
lea rdi, [rbp - 0x10]
xorps xmm6, xmm6
nop
mov eax, dword [0x14053fca0]
mov ecx, eax
xor ecx, 0x2ea84ce
mov edx, eax
xor edx, 0x7d157b31
and edx, eax
lea ecx, [rcx + rdx*2]
lea edx, [rax + 0x2ea84cd]
lea r8d, [rax - 0x75810df1]
add eax, 0x1d5b2d1b
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r8d
mov qword [rsp + 0x20], 0
mov r8d, edx
xor r9d, r9d
call fcn.1401157f0
mov rcx, rdi
mov edx, 0xbf5848f2
call fcn.1401146d0
mov qword [rsi + 0x10], 0
movups xmmword [rsi + 0x20], xmm6
mov qword [rbp + 0x20], rsi
mov eax, dword [0x1405b3508]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
jne 0x140112f60
jmp 0x140112ef9
lea rcx, [rbp - 0x40]
call fcn.140428b04
test bl, bl
je 0x140112ff4
lea r14, [0x14046b978]
jmp 0x140112ff8
mov r14, qword [rdi + 0x10]
lea r13, [rsi + 0x20]
mov eax, dword [0x1405b3508]
mov ecx, dword [0x14053fca0]
neg ecx
add ecx, eax
add ecx, 0xfd157b32
imul ecx, eax
test cl, 1
jne 0x140113070
mov rcx, r14
mov edx, 0x64662989
mov r8d, 0x78f1bfee
call fcn.1400aa8d0
mov r15, rax
inc r15
mov dword [rsp + 0x20], 0x3e934d96
mov edx, 1
mov rcx, r15
mov r8d, 0x51ceebdc
mov r9d, 0x90c6f10a
call fcn.1400ac0f0
mov r12, rax
mov eax, dword [0x1405b3508]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14011307d
nop dword [rax + rax]
mov eax, dword [0x1405b350c]
cmp eax, 0x62
jge 0x140113070
jmp 0x14011301a
test r12, r12
je 0x1401131d7
test r15, r15
je 0x140113099
mov rcx, r12
mov rdx, r14
mov r8, r15
call fcn.14044e610
mov qword [rsi + 0x10], r12
mov dword [rsp + 0x20], 0x3e934d96
mov ecx, 6
mov edx, 1
mov r8d, 0x51ceebdc
mov r9d, 0x90c6f10a
call fcn.1400ac0f0
test rax, rax
je 0x1401131dc
mov r14, rax
mov r9d, dword [0x14053fca0]
lea ecx, [r9 + 0x2ea84ce]
lea r8d, [r9 + 0x7c30f0ba]
add r9d, 0x36ba93d4
mov edx, ecx
call fcn.140115870
mov ecx, dword [rax]
mov dword [r14], ecx
movzx eax, word [rax + 4]
mov word [r14 + 4], ax
mov qword [r13], r14
mov dword [rsp + 0x20], 0x3e934d96
mov ecx, 5
mov edx, 1
mov r8d, 0x51ceebdc
mov r9d, 0x90c6f10a
call fcn.1400ac0f0
test rax, rax
je 0x1401131e1
mov r14, rax
mov r9d, dword [0x14053fca0]
lea ecx, [r9 + 0x2ea84ce]
mov eax, r9d
xor eax, 0x2ea84ce
mov edx, r9d
and edx, 0x2ea84ce
lea edx, [rax + rdx*2]
lea r8d, [r9 + 0x56878c94]
add r9d, 0x2714764d
call fcn.1401155d0
mov ecx, dword [rax]
mov dword [r14], ecx
movzx eax, byte [rax + 4]
mov byte [r14 + 4], al
mov qword [rsi + 0x28], r14
test bl, bl
je 0x1401131c5
mov eax, dword [0x14053fca0]
mov ecx, eax
xor ecx, 0x2ea84cd
and eax, 0x2ea84cd
lea eax, [rcx + rax*2]
lea rcx, [fcn.140112e90]
lea edx, [rcx + rcx]
add edx, 0x11e0
mov r8d, edx
not r8d
and edx, r8d
add ecx, ecx
add ecx, 0x11e1
and r8d, 0xfffffffe
xor r8d, ecx
or r8d, edx
not r8d
cmp r8d, eax
je 0x1401131e6
jmp 0x140113210
mov rax, qword [rdi]
movzx eax, byte [rax]
mov byte [rsi + 0x18], al
mov rax, qword [rdi + 8]
movzx eax, byte [rax]
jmp 0x140113218
call fcn.140427694
call fcn.140427694
call fcn.140427694
movzx eax, byte [0x14053fcb0]
add al, 0x91
mov byte [rsi + 0x18], al
mov eax, dword [0x1405b3508]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x2ea84cd
add eax, dword [0x14053fca0]
cmp ecx, eax
je 0x140113216
mov byte [rsi + 0x18], 0x2e
jmp 0x1401131e6
mov al, 0x2c
mov byte [rsi + 0x19], al
movaps xmm6, xmmword [rbp + 0x30]
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret