Function at 0x180029b30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
call fcn.18002c280
cmp eax, 0x2a
je 0x180029b7b
cmp eax, 0x2f
jne 0x180029be2
mov edi, 0x4803
nop dword [rax]
mov rcx, rsi
call fcn.18002c280
inc eax
cmp eax, 0xf
jae 0x180029b60
bt edi, eax
jae 0x180029b60
mov al, 1
jmp 0x180029e15
lea rdi, [rsi + 0x28]
lea rbx, [rsi + 0x30]
jmp 0x180029b97
inc eax
cmp eax, 1
jbe 0x180029bf7
mov rcx, rsi
call fcn.18002c280
cmp eax, 0x2a
jne 0x180029b90
mov rcx, rsi
call fcn.18002c280
cmp eax, 0x2f
je 0x180029b74
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
mov rcx, rdi
test rax, rax
jne 0x180029bd0
mov rax, qword [rbx]
mov rcx, rbx
test rax, rax
je 0x180029bd6
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x180029b97
dec qword [rsi + 0x40]
jmp 0x180029b97
cmp byte [0x18005e328], 0
je 0x180029c10
lea r8, [0x18005ca00]
jmp 0x180029e02
cmp byte [0x18005e2f7], 0
je 0x180029d32
lea r8, [0x18005c9f8]
jmp 0x180029e02
mov rax, qword [0x18005c9f0]
movabs r10, 0x6bc7c71c618bc2b5
add r10, rax
movabs r11, 0x6bc7c71c618bc29d
add r11, rax
xor ecx, ecx
movabs rdi, 0xaaaaaaaaaaaaaaab
lea rbx, [0x18005e2f8]
lea r8, [0x18005ca00]
lea r9, [0x18005e328]
nop word cs:[rax + rax]
mov rax, rcx
mul rdi
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rax, [rdx + rdx*2]
mov rdx, r11
sub rdx, rax
movzx eax, byte [r10 + rcx]
movzx edx, byte [rdx + rcx]
mov r14d, edx
not r14b
mov r15d, eax
or r15b, 0x19
mov r12d, r15d
not r12b
mov ebp, edx
xor bpl, 0x86
and bpl, r14b
mov r14d, r12d
and r14b, 2
and r15b, 0x50
or r15b, r14b
mov r14d, eax
and r14b, 0x84
and r12b, 0x20
or r12b, r14b
or r15b, 0x8d
or r12b, 0xb
and al, 0x19
xor al, r12b
xor al, r15b
and bpl, 0xe6
mov r14d, edx
and r14b, 0x60
mov r15d, edx
and r15b, 0x19
lea r12d, [r15 + 0x60]
xor r14b, bpl
or bpl, 8
xor r14b, 0x71
and r14b, r12b
xor r15b, 0x97
and r15b, bpl
or r15b, r14b
mov ebp, edx
xor bpl, 0x19
xor dl, 0xe6
or dl, bpl
not dl
or dl, r15b
mov ebp, eax
xor bpl, 0xad
xor al, dl
xor al, 0x52
and al, dl
or bpl, dl
not bpl
or bpl, al
mov byte [rcx + rbx], bpl
inc rcx
cmp rcx, 0x30
jne 0x180029c60
jmp 0x180029dfe
mov rax, qword [0x18005c9f0]
movabs rcx, 0x6bc7c71c618bc259
add rcx, rax
movabs r10, 0x6bc7c71c618bc23d
add r10, rax
xor r11d, r11d
movabs rdi, 0x4924924924924925
lea rbx, [0x18005e2d1]
lea r8, [0x18005c9f8]
lea r9, [0x18005e2f7]
nop word cs:[rax + rax]
mov rax, r11
shr rax, 2
mul rdi
shr rdx, 1
imul rax, rdx, 0xffffffffffffffe4
add rax, r10
movzx ebp, byte [rcx + r11]
movzx eax, byte [r11 + rax]
mov r14d, ebp
xor r14b, 0xa0
and r14b, bpl
mov edx, ebp
and dl, 0xa0
and r14b, 0xf0
mov r15d, ebp
and r15b, 0xf
xor dl, 0xaa
or dl, r14b
xor dl, r15b
mov r14d, ebp
xor r14b, 0xf0
xor bpl, 0xf
or bpl, r14b
xor dl, 0x5a
mov r14d, edx
xor r14b, bpl
or dl, bpl
not dl
or dl, r14b
mov ebp, eax
and bpl, 0x79
and al, 0x86
or al, 0x38
xor al, bpl
xor al, dl
xor al, 0x37
mov byte [r11 + rbx], al
inc r11
cmp r11, 0x26
jne 0x180029d80
mov byte [r9], 1
movabs rax, 0x6bc7c71c618ba785
add rax, qword [r8]
mov qword [rsi + 0x70], rax
xor eax, eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret