Function at 0x1400520c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x14042a140]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov rdi, rcx
mov rax, qword [0x14042ae80]
test rax, rax
je 0x140052627
mov r13d, 0xffff0000
mov r15d, 8
mov r11d, 0x4c
movzx eax, byte [0x14042ae69]
test al, al
je 0x140052170
mov qword [rsp + 0x58], shutdown
lea rcx, [rsp + 0x58]
call fcn.14005c160
movzx eax, byte [0x14042ae69]
test al, al
je 0x140052152
mov rax, qword [0x14042ae80]
test rax, rax
jne 0x140052131
mov rax, qword [0x14042ae80]
test rax, rax
je 0x140052627
mov rcx, rdi
call fcn.1400528c0
mov r11d, 0x4c
mov r12b, 1
mov byte [rsp + 0x40], r12b
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
mov rcx, qword [rdi + 0x890]
mov rax, qword [0x14042ae80]
cmp rax, rcx
jne 0x140052609
nop word [rax + rax]
movzx eax, byte [rdi + 0x898]
imul r14, rax, 0x268
add r14, 0x3a8
add r14, rdi
movzx ecx, byte [rdi + 0x4a]
mov edx, 1
shl rdx, cl
movzx ecx, byte [r14 + 2]
mov eax, 1
shl rax, cl
cmp rax, rdx
jne 0x140052609
movzx eax, byte [rdi + 0x898]
imul rcx, rax, 0x268
mov edx, dword [rcx + rdi + 0x3a8]
mov eax, edx
and eax, 0xff000000
mov ecx, 0xff000000
cmp eax, 0x63000000
cmove ecx, r13d
and ecx, edx
movzx edx, byte [rdi + 0x898]
cmp ecx, 0x6b000000
jne 0x14005222c
mov eax, 0x20
jmp 0x14005223b
mov eax, 0x27
cmp ecx, 0x6c000000
cmove rax, r11
imul rbx, rdx, 0x198
add rbx, rax
mov ebx, dword [rbx + rdi + 0x78]
cmp dword [rdi + 0x8c0], 0
je 0x140052280
cmp ebx, dword [rdi + 0x8c0]
jae 0x140052622
cmp qword [rdi + 0x60], 1
jne 0x140052280
movzx eax, byte [rdi + 0x898]
imul rdx, rax, 0x198
mov rax, qword [0x1406bace0]
nop
xor qword [rdx + rdi + 0x78], rax
movzx eax, byte [rdi + 0x898]
imul rcx, rax, 0x268
mov r9d, dword [rcx + rdi + 0x3a8]
lea r10, [rdi + 0x78]
movzx eax, byte [rdi + 0x898]
imul rcx, rax, 0x268
mov edx, dword [rcx + rdi + 0x3a8]
mov eax, edx
and eax, 0xff000000
mov ecx, 0xff000000
cmp eax, 0x63000000
cmove ecx, r13d
and ecx, edx
cmp ecx, 0x6b000000
jne 0x1400522d6
mov r8d, 0x20
jmp 0x1400522e6
mov r8d, 0x27
cmp ecx, 0x6c000000
cmove r8, r11
mov eax, r9d
and eax, 0xff000000
mov edx, 0xff000000
cmp eax, 0x63000000
cmove edx, r13d
and edx, r9d
mov ecx, 4
cmp edx, 0x6b000000
cmove rcx, r15
movzx eax, byte [r10 + 0x820]
imul r15, rax, 0x198
lea rax, [r8 + rcx]
add r15, rax
add r15, r10
mov eax, dword [r14]
and eax, 0xff000000
mov ecx, 0xff000000
cmp eax, 0x63000000
cmove ecx, r13d
and ecx, dword [r14]
cmp ecx, 0x72000000
jne 0x1400524e0
test r12b, r12b
je 0x1400523c0
mov byte [rsp + 0x40], 0
cmp byte [r14 + 0x261], 0
je 0x140052384
lea rcx, [rdi + 0x78]
movzx eax, byte [rcx + 0x820]
imul rdx, rax, 0x198
add rdx, rcx
mov r9, r15
mov r8, qword [r14 + 0x20]
mov rcx, r14
call fcn.140039910
lea rcx, [rdi + 0x78]
movzx eax, byte [rcx + 0x820]
imul r8, rax, 0x198
add r8, rcx
mov rsi, qword [rdi + 0x8a0]
mov r9, qword [r14 + 0x20]
mov edx, 0x40
lea rcx, [rbp + 0x50]
call qword [case.0x1400d495d.0]
mov rax, qword [rsi]
lea rdx, [rbp + 0x50]
mov rcx, rsi
call qword [rax + 0x30]
mov rcx, rdi
call fcn.1400527d0
test al, al
je 0x140052603
cmp byte [r14 + 0x261], 0
je 0x14005242d
movups xmm0, xmmword [r15]
movaps xmmword [rbp + 0x90], xmm0
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rbp + 0xa0], xmm1
movups xmm0, xmmword [r15 + 0x20]
movaps xmmword [rbp + 0xb0], xmm0
movups xmm1, xmmword [r15 + 0x30]
movaps xmmword [rbp + 0xc0], xmm1
lea rcx, [rdi + 0x78]
movzx eax, byte [rcx + 0x820]
imul rdx, rax, 0x198
add rdx, rcx
mov r9, r15
mov r8, qword [r14 + 0x20]
mov rcx, r14
call fcn.140039910
lea rcx, [rdi + 0x78]
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x48], rax
movzx eax, byte [rcx + 0x820]
imul r13, rax, 0x198
add r13, rcx
mov rsi, qword [rdi + 0x8a0]
mov dword [rsp + 0x50], 0x9fc0
ldmxcsr dword [rsp + 0x50]
xor eax, eax
mov r15d, eax
cmp dword [reloc.WS2_32.dll_htonl], 1
je 0x1400524a9
nop dword [rax]
mov rax, qword [rsi]
lea rdx, [rbp + 0x50]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_getservbyport]
mov r9d, 0x100
lea r8, [rsi + 0x980]
mov edx, 0x40
lea rcx, [rbp + 0x50]
call qword [case.0x1400d495d.0]
inc r15d
mov eax, dword [reloc.WS2_32.dll_htonl]
dec eax
cmp r15d, eax
jb 0x140052470
mov rax, qword [rsi]
lea rdx, [rbp + 0x50]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_getservbyport]
mov r9, qword [rsp + 0x48]
mov r8, r13
mov edx, 0x40
lea rcx, [rbp + 0x50]
call qword [case.0x1400d495d.0]
mov rax, qword [rsi]
lea rdx, [rdi + 0x28]
lea r8, [rbp + 0x50]
mov rcx, rsi
call qword [rax + 0x18]
jmp 0x140052528
lea r10, [rdi + 0x78]
mov edx, dword [rdi + 0x54]
mov rcx, r14
call fcn.140078510
lea r9, [rdi + 0x68]
lea r8, [rdi + 0x28]
movzx ecx, byte [r10 + 0x820]
imul rcx, rcx, 0x198
add rcx, r10
mov rdx, qword [r14 + 0x78]
mov qword [rsp + 0x20], rdx
mov rdx, qword [r14 + 0x20]
call rax
mov rcx, rdi
call fcn.1400527d0
test al, al
je 0x140052603
mov rdx, qword [rdi + 0x40]
cmp dword [rdi + 0x8c0], 0
je 0x140052563
cmp ebx, dword [rdi + 0x8c0]
jae 0x1400525c5
prefetchw byte [0x1406bace0]
mov rax, qword [0x1406bace0]
nop
mov rcx, rax
xor rcx, rdx
lock cmpxchg qword [0x1406bace0], rcx
jne 0x140052550
jmp 0x1400525c5
cmp rdx, qword [r14 + 0x80]
jae 0x1400525c5
lea rax, [rbp + 0x90]
cmp byte [r14 + 0x261], 0
mov ecx, 0
cmove rax, rcx
lea r9, [rdi + 0x28]
mov r8, rbx
mov qword [rsp + 0x30], rax
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.140065280
nop
cmp qword [0x1406be668], 0
je 0x1400525b1
mov rdx, rax
call fcn.1400653e0
nop
mov rcx, qword [rsp + 0x78]
call fcn.1402e730c
mov rcx, qword [rsp + 0x68]
call fcn.1402e730c
inc qword [rdi + 8]
cmp byte [rdi + 0x51], 0
je 0x1400525d4
call sub.KERNEL32.dll_SwitchToThread
mov rcx, qword [rdi + 0x890]
mov rax, qword [0x14042ae80]
cmp rax, rcx
movzx r12d, byte [rsp + 0x40]
mov r11d, 0x4c
mov r13d, 0xffff0000
lea r15d, [r11 - 0x44]
je 0x1400521b0
jmp 0x140052609
mov r15d, 8
mov rcx, rdi
call fcn.1400528c0
mov rax, qword [0x14042ae80]
test rax, rax
je 0x140052627
jmp 0x140052117
call fcn.14004c650
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.1402e72b0
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret