Function at 0x180012b70
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x70
cmp dword [rcx], 0
mov rbx, r9
mov eax, r8d
mov rsi, rdx
mov rbp, rcx
je 0x180012b96
mov eax, 0xfffffffb
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret
mov r8d, dword [rcx + 4]
cmp r8d, 2
je 0x180012bb3
cmp dword [rcx + 8], 0
jne 0x180012bb3
mov eax, 0xfffffffa
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret
test rdx, rdx
je 0x180013048
test eax, eax
jle 0x180013048
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], r12
cdq
and edx, 0x7f
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0x68], r14
add eax, edx
mov qword [rsp + 0x60], r15
sar eax, 7
mov r12d, eax
mov dword [rsp + 0x58], eax
test r8d, r8d
je 0x180013011
dec r8d
je 0x180012f4c
dec r8d
je 0x180012c3a
or eax, 0xffffffff
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
mov r15, qword [rsp + 0x60]
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [rcx + 0xc]
mov edi, r12d
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x3c], eax
test r12d, r12d
jle 0x18001303c
movzx ecx, byte [rsp + 0x3b]
movzx r14d, byte [rsp + 0x3f]
movzx r15d, byte [rsp + 0x3e]
movzx r12d, byte [rsp + 0x3d]
mov byte [rsp + 0x27], al
movzx eax, byte [rsp + 0x3a]
mov byte [rsp + 0x23], al
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x25], cl
movzx ecx, byte [rsp + 0x39]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x36]
mov byte [rsp + 0x21], cl
movzx ecx, byte [rsp + 0x37]
mov byte [rsp + 0x26], al
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x29], cl
movzx ecx, byte [rsp + 0x35]
mov byte [rsp + 0x24], al
movzx eax, byte [rsp + 0x32]
mov byte [rsp + 0x2b], cl
movzx ecx, byte [rsp + 0x33]
mov byte [rsp + 0x22], al
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x2a], cl
movzx ecx, byte [rsp + 0x31]
mov byte [rsp + 0x90], al
mov byte [rsp + 0x28], cl
nop dword [rax]
movzx edi, byte [rsp + 0x27]
xor r13d, r13d
nop dword [rax + rax]
mov eax, dword [rsp + 0x30]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x34]
mov rcx, rbp
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x54], eax
call fcn.1800133c0
movzx edx, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x22]
movzx eax, byte [rsp + 0x90]
movzx ecx, dl
shr cl, 7
add al, al
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x2a]
mov byte [rsp + 0x90], cl
mov byte [rsp + 0x30], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x24]
mov byte [rsp + 0x28], cl
mov byte [rsp + 0x31], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x2b]
mov byte [rsp + 0x22], cl
mov byte [rsp + 0x32], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x26]
mov byte [rsp + 0x2a], cl
mov byte [rsp + 0x33], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x29]
mov byte [rsp + 0x24], cl
mov byte [rsp + 0x34], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x20]
mov byte [rsp + 0x2b], cl
mov byte [rsp + 0x35], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x21]
mov byte [rsp + 0x26], cl
mov byte [rsp + 0x36], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
mov byte [rsp + 0x29], cl
mov byte [rsp + 0x37], cl
movzx ecx, dl
shr cl, 7
add al, al
movzx r8d, byte [rsp + 0x23]
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x25]
add al, al
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x38], cl
movzx r11d, dl
movzx ecx, r8b
shr cl, 7
movzx r10d, dil
shr r11b, 7
or cl, al
movzx eax, r8b
shr r10b, 7
add al, al
mov byte [rsp + 0x21], cl
mov byte [rsp + 0x39], cl
or r11b, al
movzx eax, dl
movzx ecx, r12b
add al, al
shr cl, 7
mov r9d, r13d
or r10b, al
movzx eax, dil
movzx edi, cl
add al, al
movzx ecx, r15b
and r9d, 7
or dil, al
shr cl, 7
movzx eax, r12b
add al, al
movzx r12d, cl
movzx ecx, r14b
or r12b, al
movzx eax, r15b
shr cl, 7
add al, al
movzx r15d, cl
mov ecx, 7
or r15b, al
mov eax, r13d
sub cl, r9b
shr eax, 3
inc r13d
mov byte [rsp + 0x23], r11b
movzx edx, byte [rax + rsi]
mov r8d, eax
movzx eax, r14b
add al, al
shr dl, cl
movzx ecx, r9b
and dl, 1
mov byte [rsp + 0x3a], r11b
mov byte [rsp + 0x25], r10b
movzx r14d, dl
mov byte [rsp + 0x3b], r10b
mov byte [rsp + 0x3c], dil
or r14b, al
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x3d], r12b
and al, 0x80
mov byte [rsp + 0x3e], r15b
mov byte [rsp + 0x3f], r14b
shr al, cl
xor byte [r8 + rbx], al
cmp r13d, 0x80
jl 0x180012d00
mov byte [rsp + 0x27], dil
mov edi, dword [rsp + 0x40]
dec edi
mov dword [rsp + 0x40], edi
test edi, edi
jg 0x180012cf0
mov r12d, dword [rsp + 0x58]
shl r12d, 7
mov eax, r12d
jmp 0x180012c10
mov eax, dword [rcx + 0x14]
mov r14d, dword [rcx + 0xc]
mov r15d, dword [rcx + 0x10]
mov dword [rsp + 0x90], eax
mov eax, dword [rcx + 0x18]
mov r13d, r12d
mov dword [rsp + 0x40], eax
test r12d, r12d
jle 0x18001303c
lea r12, [rsi + 8]
lea rdi, [r9 + 8]
sub rsi, rbx
nop dword [rax]
lea rbx, [rsi + rdi - 8]
lea r8, [rsp + 0x48]
mov rcx, rbp
mov rdx, rbx
call fcn.180013840
mov r11d, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x50]
xor ecx, dword [rsp + 0x90]
mov edx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x54]
xor eax, dword [rsp + 0x40]
xor edx, r15d
xor r11d, r14d
mov r14d, dword [rbx]
mov dword [rdi - 8], r11d
mov r15d, dword [r12 - 4]
mov dword [rdi - 4], edx
mov dword [rsp + 0x4c], edx
mov edx, dword [r12]
mov dword [rdi], ecx
mov dword [rsp + 0x50], ecx
mov ecx, dword [r12 + 4]
dec r13d
mov dword [rdi + 4], eax
add r12, 0x10
add rdi, 0x10
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x90], edx
test r13d, r13d
jg 0x180012f80
mov r12d, dword [rsp + 0x58]
shl r12d, 7
mov eax, r12d
jmp 0x180012c10
mov edi, eax
test eax, eax
jle 0x18001303c
nop word [rax + rax]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call fcn.180013840
dec edi
add rsi, 0x10
add rbx, 0x10
test edi, edi
jg 0x180013020
shl r12d, 7
mov eax, r12d
jmp 0x180012c10
xor eax, eax
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret