Function at 0x180059070
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xb8
mov rax, qword [0x180243280]
xor rax, rsp
mov qword [rbp + 7], rax
mov r14, r9
mov r12, r8
mov r15, rdx
mov rdi, rcx
mov qword [rbp - 0x29], r8
mov qword [rbp - 0x21], r9
xor r10d, r10d
mov dword [rbp - 0x75], r10d
mov rsi, qword [r8]
test rsi, rsi
je 0x1800594ab
mov rax, qword [r9]
test rax, rax
je 0x1800594ab
mov ecx, dword [rsi + 0x70]
mov dword [rbp - 0x71], ecx
cmp ecx, 8
jl 0x1800590e6
call fcn.18001bff0
mov dword [r15], 7
jmp 0x180059430
add rsi, 0x50
lea r13, [rax + 0x50]
cmp ecx, 1
jne 0x18005916d
mov r9d, r10d
cmp qword [rsi + 0x18], 0xf
jbe 0x180059109
mov r8, qword [rsi]
mov rax, r8
add r8, qword [rsi + 0x10]
jmp 0x180059113
mov r8, qword [rsi + 0x10]
add r8, rsi
mov rax, rsi
cmp rax, r8
je 0x180059157
mov r9d, r10d
lea r10, [0x1801f85a0]
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
movzx edx, byte [rcx + r10]
lea ecx, [r9 + 0x10]
shl ecx, 4
add ecx, edx
movzx r9d, byte [rcx + r10]
cmp r9d, 1
je 0x18005915c
inc rax
cmp rax, r8
jne 0x180059130
xor r10d, r10d
test r9d, r9d
je 0x18005916d
call fcn.18001bff0
mov dword [r15], 5
jmp 0x180059430
movzx ecx, byte [rdi + 9]
mov byte [rbp - 0x78], cl
mov rax, qword [r12]
movzx edx, byte [rax + 0x75]
mov byte [rbp - 0x79], dl
test cl, cl
jne 0x18005923d
mov rdi, qword [rdi + 0x98]
lea rbx, [rdi + 0x10]
mov qword [rbp - 0x19], rbx
mov rcx, rbx
call fcn.180156e98
test eax, eax
jne 0x180059557
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x180059547
mov r8d, dword [rdi + 0xc]
mov edx, dword [rdi + 8]
mov rcx, rdi
call fcn.18006ed40
mov edi, eax
mov rcx, rbx
call fcn.180156ea0
xor r8d, r8d
mov rdx, qword [rsi + 0x10]
mov rcx, r13
call fcn.180004e30
mov dword [rbp - 1], edi
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1800591ed
mov rax, qword [r13]
cmp qword [rsi + 0x18], 0xf
jbe 0x180059200
mov r9, qword [rsi]
add r9, qword [rsi + 0x10]
mov rsi, qword [rsi]
jmp 0x180059207
mov r9, qword [rsi + 0x10]
add r9, rsi
mov r8, r9
xor r10d, r10d
mov edx, r10d
cmp rsi, r9
je 0x180059289
nop word [rax + rax]
movzx ecx, byte [rbp + rdx - 1]
xor cl, byte [rsi]
mov byte [rax], cl
inc rdx
and edx, 3
lea rax, [rax + 1]
inc rsi
cmp rsi, r8
jne 0x180059220
jmp 0x180059289
mov edi, r10d
lea rbx, [rsi + 0x10]
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, r13
call fcn.180004e30
mov r9, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x180059260
mov r9, qword [r13]
cmp qword [rsi + 0x18], 0xf
jbe 0x180059272
mov r8, qword [rsi]
mov rsi, r8
add r8, qword [rbx]
jmp 0x180059278
mov r8, qword [rbx]
add r8, rsi
sub r8, rsi
mov rdx, rsi
mov rcx, r9
call fcn.1801da970
xor r10d, r10d
mov rdx, qword [r13 + 0x10]
neg byte [rbp - 0x79]
sbb sil, sil
and sil, 0x80
mov r13d, dword [rbp - 0x71]
movzx eax, r13b
and al, 0xf
or sil, al
mov ebx, 0x80
movzx ecx, byte [rbp - 0x78]
test cl, cl
cmovne ebx, r10d
cmp rdx, 0x7d
ja 0x1800592be
movzx eax, dl
jmp 0x1800592ca
cmp rdx, 0xffff
seta al
add al, 0x7e
or bl, al
xor eax, eax
mov qword [rbp - 0x11], rax
mov dword [rbp - 9], eax
test cl, cl
lea rcx, [rbp - 0x11]
jne 0x18005937d
call fcn.180010440
movsxd rcx, eax
mov dword [rbp + rcx - 0x11], edi
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x51], reloc.WS2_32.dll_ntohs
mov eax, 2
mov dword [rbp - 0x75], eax
mov byte [rbp - 0x69], sil
mov qword [rbp - 0x59], rax
mov byte [rbp - 0x68], bl
mov byte [rbp - 0x67], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x180059328
mov eax, 4
jmp 0x180059334
mov ecx, 0xa
cmp dl, 0x7f
cmove rax, rcx
lea r8, [rax + 4]
test bl, bl
cmovns r8, rax
sub r8, 2
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x69]
call fcn.180004480
lea rcx, [rdi + 0x10]
lea rax, [rbp - 0x69]
cmp rcx, rax
je 0x180059374
lea rdx, [rbp - 0x69]
cmp qword [rbp - 0x51], 0xf
cmova rdx, qword [rbp - 0x69]
mov r8, qword [rbp - 0x59]
call fcn.1800348e0
nop
lea rcx, [rbp - 0x69]
jmp 0x180059411
call fcn.180010440
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x31], reloc.WS2_32.dll_ntohs
mov dword [rbp - 0x75], 1
mov byte [rbp - 0x49], sil
mov eax, 2
mov qword [rbp - 0x39], rax
mov byte [rbp - 0x48], bl
mov byte [rbp - 0x47], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x1800593c1
mov eax, 4
jmp 0x1800593cd
mov ecx, 0xa
cmp dl, 0x7f
cmove rax, rcx
lea r8, [rax + 4]
test bl, bl
cmovns r8, rax
sub r8, 2
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x49]
call fcn.180004480
lea rcx, [rdi + 0x10]
lea rax, [rbp - 0x49]
cmp rcx, rax
je 0x18005940d
lea rdx, [rbp - 0x49]
cmp qword [rbp - 0x31], 0xf
cmova rdx, qword [rbp - 0x49]
mov r8, qword [rbp - 0x39]
call fcn.1800348e0
nop
lea rcx, [rbp - 0x49]
call fcn.180004420
mov rax, qword [r14]
mov byte [rax + 0x74], 1
mov rax, qword [r14]
mov dword [rax + 0x70], r13d
xor eax, eax
mov dword [r15], eax
lea rax, [0x180243fd0]
mov qword [r15 + 8], rax
mov rdi, qword [r12 + 8]
mov ebx, 0xffffffff
test rdi, rdi
je 0x18005946d
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x18005946d
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x18005946d
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x180059524
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x180059524
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x180059524
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x180059524
call fcn.18001bff0
mov dword [r15], 6
mov qword [r15 + 8], rax
mov rdi, qword [r12 + 8]
mov ebx, 0xffffffff
test rdi, rdi
je 0x1800594f4
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1800594f4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1800594f4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x180059524
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x180059524
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x180059524
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + reloc.WS2_32.dll_htonl]
mov rax, r15
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.18017ae80
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.18015721c
int3
mov ecx, 5
call fcn.18015721c
int3