Function at 0x1800534a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x20
movsxd r15, r8d
mov eax, 0x8000
xor r12d, r12d
cmp r15d, eax
mov rdi, rcx
mov dword [rcx + 4], r12d
mov dword [rcx], r12d
mov rcx, qword [rcx + 8]
cmovl eax, r15d
movsxd r8, eax
mov rbx, r9
mov rsi, rdx
call fcn.1800785c0
mov eax, 1
xor r11b, r11b
cmp rax, r15
mov r8, r15
jge 0x1800534fc
nop word [rax + rax]
xor r11b, byte [rax + rsi]
inc rax
cmp rax, r15
jl 0x1800534f0
mov ecx, dword [rdi + 4]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], r13
add ecx, 8
mov qword [rsp + 0x60], r14
mov eax, ecx
and ecx, 7
sar eax, 3
mov dword [rdi + 4], ecx
add dword [rdi], eax
mov dword [rbx + 0x18], r12d
cmp r11b, byte [rsi]
jne 0x180053926
mov rdx, rsi
or ecx, 0xffffffff
call fcn.18004f9d0
lea r8, [0x180116ed0]
mov edx, r12d
not eax
mov rcx, r8
cmp dword [rcx + 4], eax
jne 0x18005354f
cmp dword [rcx], r15d
je 0x18005355f
inc edx
add rcx, 0xc
cmp edx, 7
jb 0x180053545
jmp 0x1800535fd
movsxd rax, edx
lea rcx, [rax + rax*2]
mov ebp, dword [r8 + rcx*4 + 8]
test ebp, ebp
je 0x1800535fd
inc dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
mov r8d, dword [rbx + 8]
cmp r8d, ecx
jle 0x1800535bf
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea esi, [rax + rcx + 0x20]
mov rcx, qword [rbx]
cmp r8d, esi
cmovg esi, r8d
movsxd rdx, esi
imul rdx, rdx, 0x38
call fcn.1800788f4
mov qword [rbx], rax
test rax, rax
jne 0x1800535bc
lea rcx, [0x180115810]
call fcn.18004fe60
int3
mov dword [rbx + 0xc], esi
movsxd rcx, dword [rbx + 0x18]
mov r15d, r12d
lea eax, [rcx + 1]
mov rdx, rcx
mov dword [rbx + 0x18], eax
imul rdx, rdx, 0x38
add rdx, qword [rbx]
mov dword [rdx + 0xc], ebp
lea rax, [rdx + 0xc]
mov dword [rdx], 0x36
mov dword [rdx + 0x20], 3
mov qword [rdx + 0x18], rax
lea rax, [rdx + 0x24]
mov dword [rdx + 8], 3
mov qword [rdx + 0x30], rax
movsxd r9, dword [rdi]
mov rcx, qword [rdi + 8]
mov r8d, dword [rdi + 4]
movzx eax, byte [r9 + rcx]
movzx r10d, byte [r9 + rcx + 1]
shl eax, 8
or r10d, eax
movzx eax, byte [r9 + rcx + 2]
mov ecx, 8
sub ecx, r8d
shl r10d, 8
or r10d, eax
shr r10d, cl
lea ecx, [r8 + 1]
mov eax, ecx
and ecx, 7
sar eax, 3
mov dword [rdi + 4], ecx
add eax, r9d
bt r10d, 0xf
mov dword [rdi], eax
jae 0x180053714
mov rcx, rdi
mov rbp, r12
call fcn.180053b80
inc eax
cmp dword [rdi], r15d
movsxd r13, eax
jge 0x180053926
nop dword [rax]
cmp rbp, r13
jge 0x180053714
inc dword [rbx + 0x38]
mov ecx, dword [rbx + 0x3c]
mov r8d, dword [rbx + 0x38]
cmp r8d, ecx
jle 0x1800536ba
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea esi, [rax + rcx + 0x20]
mov rcx, qword [rbx + 0x30]
cmp r8d, esi
cmovg esi, r8d
movsxd rdx, esi
call fcn.1800788f4
mov qword [rbx + 0x30], rax
test rax, rax
je 0x1800537d7
mov dword [rbx + 0x3c], esi
movsxd rdx, dword [rdi]
mov rcx, qword [rdi + 8]
inc rbp
movzx eax, byte [rdx + rcx]
movzx r8d, byte [rdx + rcx + 1]
shl eax, 8
or r8d, eax
movzx eax, byte [rdx + rcx + 2]
mov ecx, 8
sub ecx, dword [rdi + 4]
shl r8d, 8
or r8d, eax
mov rax, qword [rbx + 0x30]
shr r8d, cl
shr r8d, 8
mov byte [rax + rbp - 1], r8b
mov ecx, dword [rdi + 4]
add ecx, 8
mov eax, ecx
and ecx, 7
sar eax, 3
mov dword [rdi + 4], ecx
add dword [rdi], eax
cmp dword [rdi], r15d
jl 0x180053670
cmp dword [rdi], r15d
jge 0x180053926
lea r9, [0x180114f58]
nop word [rax + rax]
inc dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
mov r8d, dword [rbx + 8]
cmp r8d, ecx
jle 0x18005377a
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea esi, [rax + rcx + 0x20]
mov rcx, qword [rbx]
cmp r8d, esi
cmovg esi, r8d
movsxd rdx, esi
imul rdx, rdx, 0x38
call fcn.1800788f4
mov qword [rbx], rax
test rax, rax
je 0x18005396f
mov dword [rbx + 0xc], esi
lea r9, [0x180114f58]
mov rcx, qword [rdi + 8]
movsxd rdx, dword [rdi]
movsxd rsi, dword [rbx + 0x18]
imul rsi, rsi, 0x38
movzx eax, byte [rdx + rcx]
movzx r8d, byte [rdx + rcx + 1]
add rsi, qword [rbx]
shl eax, 8
or r8d, eax
movzx eax, byte [rdx + rcx + 2]
mov ecx, 8
sub ecx, dword [rdi + 4]
shl r8d, 8
or r8d, eax
shr r8d, cl
movzx eax, r8w
bt eax, 0xf
jb 0x1800537e4
shr eax, 0xc
mov dword [rsi], eax
mov ecx, dword [rdi + 4]
add ecx, 4
mov eax, ecx
sar eax, 3
add dword [rdi], eax
and ecx, 7
mov dword [rdi + 4], ecx
jmp 0x1800537ff
lea rcx, [0x180115810]
call fcn.18004fe60
int3
shr eax, 0xa
sub eax, 0x18
mov dword [rsi], eax
mov ecx, dword [rdi + 4]
add ecx, 6
mov eax, ecx
sar eax, 3
add dword [rdi], eax
and ecx, 7
mov dword [rdi + 4], ecx
movsxd rax, dword [rsi]
test byte [rax + r9], 4
je 0x180053857
movsxd rdx, dword [rdi]
mov rcx, qword [rdi + 8]
movzx eax, byte [rdx + rcx]
movzx r8d, byte [rdx + rcx + 1]
shl eax, 8
or r8d, eax
movzx eax, byte [rdx + rcx + 2]
mov ecx, 8
sub ecx, dword [rdi + 4]
shl r8d, 8
or r8d, eax
shr r8d, cl
shr r8d, 0xf
and r8b, 1
mov byte [rsi + 4], r8b
mov ecx, dword [rdi + 4]
inc ecx
mov eax, ecx
sar eax, 3
add dword [rdi], eax
and ecx, 7
mov dword [rdi + 4], ecx
jmp 0x18005385b
mov byte [rsi + 4], r12b
movsxd rax, dword [rsi]
mov dword [rsi + 0x20], 3
mov dword [rsi + 8], 3
movzx r13d, byte [rax + r9]
mov qword [rsi + 0x30], r12
mov qword [rsi + 0x18], r12
and r13d, 3
jle 0x18005391a
movzx r8d, byte [rsi + 4]
lea rdx, [rsi + 8]
mov rcx, rdi
call fcn.180053a20
cmp r13d, 2
jne 0x1800538b4
movzx r8d, byte [rsi + 4]
lea rdx, [rsi + 0x20]
mov rcx, rdi
call fcn.180053a20
lea r9, [0x180114f58]
jmp 0x18005391a
cmp dword [rsi + 8], 1
jne 0x180053913
movsxd rax, dword [rsi]
lea r9, [0x180114f58]
test byte [rax + r9], 0x18
je 0x18005391a
mov eax, dword [rsi + 0xc]
cmp eax, 0x100
jl 0x1800538df
sub eax, 0x100
mov dword [rsi + 0xc], eax
jmp 0x18005391a
cmp eax, 0x88
jl 0x1800538f3
sub eax, 0x108
add eax, dword [rbx + 0x18]
mov dword [rsi + 0xc], eax
jmp 0x18005391a
cmp eax, 0x10
jl 0x180053903
sub eax, 8
add eax, dword [rbx + 0x18]
mov dword [rsi + 0xc], eax
jmp 0x18005391a
cmp eax, 8
jl 0x18005390b
sub eax, 0x10
add eax, dword [rbx + 0x18]
mov dword [rsi + 0xc], eax
jmp 0x18005391a
lea r9, [0x180114f58]
inc dword [rbx + 0x18]
cmp dword [rdi], r15d
jl 0x180053730
inc dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
mov r8d, dword [rbx + 8]
cmp r8d, ecx
jle 0x18005397f
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea esi, [rax + rcx + 0x20]
mov rcx, qword [rbx]
cmp r8d, esi
cmovg esi, r8d
movsxd rdx, esi
imul rdx, rdx, 0x38
call fcn.1800788f4
mov qword [rbx], rax
test rax, rax
jne 0x18005397c
lea rcx, [0x180115810]
call fcn.18004fe60
int3
lea rcx, [0x180115810]
call fcn.18004fe60
int3
mov dword [rbx + 0xc], esi
movsxd rcx, dword [rbx + 0x18]
mov rdx, rcx
lea eax, [rcx + 1]
mov dword [rbx + 0x18], eax
imul rdx, rdx, 0x38
add rdx, qword [rbx]
lea rax, [rdx + 0xc]
mov dword [rdx], socket
mov dword [rdx + 0x20], 3
mov qword [rdx + 0x18], rax
lea rax, [rdx + 0x24]
mov dword [rdx + 8], 3
mov qword [rdx + 0x30], rax
cmp dword [rbx + 0x18], r12d
jle 0x1800539f4
mov rcx, r12
mov rdx, qword [rbx]
cmp qword [rcx + rdx + 0x18], 0
jne 0x1800539d5
lea rax, [rcx + rdx + 0xc]
mov qword [rcx + rdx + 0x18], rax
cmp qword [rcx + rdx + 0x30], 0
jne 0x1800539e7
lea rax, [rcx + rdx + 0x24]
mov qword [rcx + rdx + 0x30], rax
inc r12d
add rcx, 0x38
cmp r12d, dword [rbx + 0x18]
jl 0x1800539c0
test r15d, r15d
je 0x180053a04
mov rdx, rbx
mov rcx, rdi
call fcn.180053da0
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret