Function at 0x14003c830
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x98
call fcn.1400035e0
sub rsp, rax
mov rax, qword [0x1401ad1c0]
mov qword [rsp + 0x48], rax
test rcx, rcx
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x78], rdi
mov rdi, qword [rsp + 0xc0]
mov rbx, r8
mov rbp, rdx
mov r8, rcx
je 0x14003cc79
test rdx, rdx
je 0x14003cc79
movzx ecx, byte [rcx + 0x14]
cmp cl, 3
je 0x14003c893
cmp byte [rdx], 0
je 0x14003cc79
test rbx, rbx
je 0x14003cc72
test r9d, r9d
jle 0x14003cc72
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x70], r12
mov eax, r9d
cdq
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], r14
and edx, 0x7f
mov qword [rsp + 0x58], r15
add eax, edx
movzx edx, cl
sar eax, 7
dec edx
mov r9d, eax
mov dword [rsp + 0x20], eax
je 0x14003cc30
dec edx
je 0x14003cb88
dec edx
je 0x14003c933
mov eax, 0xfffffffb
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
call fcn.14006b6a0
add rsp, 0x98
ret
test r9d, r9d
mov eax, dword [r8]
mov esi, r9d
mov dword [rsp + 0x28], eax
mov eax, dword [r8 + 4]
mov dword [rsp + 0x2c], eax
mov eax, dword [r8 + 8]
mov dword [rsp + 0x30], eax
mov eax, dword [r8 + 0xc]
mov dword [rsp + 0x34], eax
jle 0x14003cc66
movzx r14d, byte [rsp + 0x37]
movzx r15d, byte [rsp + 0x36]
nop
nop
xor r12d, r12d
nop
nop
nop
nop
mov eax, dword [rsp + 0x28]
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x2c]
lea rdx, [rsp + 0x38]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x44], eax
call fcn.140055af0
movzx edx, byte [rsp + 0x29]
movzx r8d, byte [rsp + 0x2a]
movzx eax, byte [rsp + 0x28]
movzx ecx, dl
shr cl, 7
add al, al
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x2b]
mov byte [rsp + 0x28], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x2c]
mov byte [rsp + 0x29], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x2d]
mov byte [rsp + 0x2a], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x2e]
mov byte [rsp + 0x2b], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x2f]
mov byte [rsp + 0x2c], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x30]
mov byte [rsp + 0x2d], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x31]
mov byte [rsp + 0x2e], cl
add al, al
movzx ecx, r8b
shr cl, 7
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x32]
mov byte [rsp + 0x2f], cl
add al, al
movzx ecx, dl
shr cl, 7
or cl, al
movzx eax, dl
mov byte [rsp + 0x30], cl
movzx ecx, r8b
shr cl, 7
add al, al
movzx edx, byte [rsp + 0x33]
or cl, al
movzx eax, r8b
movzx r8d, byte [rsp + 0x34]
add al, al
mov byte [rsp + 0x31], cl
movzx ecx, dl
movzx r10d, r15b
mov r9d, r12d
shr cl, 7
and r9d, 7
shr r10b, 7
or cl, al
movzx eax, dl
movzx edx, byte [rsp + 0x35]
add al, al
mov byte [rsp + 0x32], cl
movzx r11d, dl
movzx ecx, r8b
shr r11b, 7
shr cl, 7
or cl, al
movzx eax, r8b
add al, al
mov byte [rsp + 0x33], cl
movzx ecx, r14b
or r11b, al
movzx eax, dl
shr cl, 7
add al, al
mov byte [rsp + 0x34], r11b
or r10b, al
movzx eax, r15b
mov r15b, cl
add al, al
mov ecx, 7
mov byte [rsp + 0x35], r10b
or r15b, al
mov eax, r12d
sub cl, r9b
shr eax, 3
inc r12d
mov byte [rsp + 0x36], r15b
movzx edx, byte [rax + rbx]
mov r8d, eax
movzx eax, r14b
add al, al
shr dl, cl
movzx ecx, r9b
and dl, 1
mov r14b, dl
or r14b, al
movzx eax, byte [rsp + 0x38]
and al, 0x80
mov byte [rsp + 0x37], r14b
shr al, cl
xor byte [r8 + rdi], al
cmp r12d, 0x80
jl 0x14003c980
dec esi
test esi, esi
jg 0x14003c970
mov r9d, dword [rsp + 0x20]
shl r9d, 7
mov eax, r9d
jmp 0x14003c8f0
test eax, eax
mov r12d, dword [r8]
mov r13d, dword [r8 + 4]
mov r14d, dword [r8 + 8]
mov r15d, dword [r8 + 0xc]
mov esi, eax
jle 0x14003cc66
lea rax, [rbp + 0x54]
nop
nop
nop
mov r9d, dword [rbp + 0x4c]
lea rdx, [rsp + 0x38]
mov r8, rax
mov rcx, rbx
call fcn.140055f80
mov eax, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x38]
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x40]
xor eax, r15d
xor r11d, r12d
mov r12d, dword [rbx]
xor edx, r13d
mov dword [rdi], r11d
mov r13d, dword [rbx + 4]
xor ecx, r14d
mov dword [rdi + 4], edx
mov r14d, dword [rbx + 8]
mov dword [rdi + 8], ecx
mov r15d, dword [rbx + 0xc]
mov dword [rdi + 0xc], eax
dec esi
add rdi, 0x10
add rbx, 0x10
test esi, esi
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x3c], edx
mov dword [rsp + 0x40], ecx
lea rax, [rbp + 0x54]
jg 0x14003cbb0
mov r9d, dword [rsp + 0x20]
shl r9d, 7
mov eax, r9d
jmp 0x14003c8f0
test eax, eax
mov esi, eax
jle 0x14003cc66
nop
nop
nop
mov r9d, dword [rbp + 0x4c]
lea r8, [rbp + 0x54]
mov rdx, rdi
mov rcx, rbx
call fcn.140055f80
dec esi
add rbx, 0x10
add rdi, 0x10
test esi, esi
jg 0x14003cc40
mov r9d, dword [rsp + 0x20]
shl r9d, 7
mov eax, r9d
jmp 0x14003c8f0
xor eax, eax
jmp 0x14003c90c
mov eax, 0xfffffffb
jmp 0x14003c90c