Function at 0x180157bb0
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 - 0x1e8]
sub rsp, 0x2e8
mov rax, qword [0x18029e198]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x24], r8d
mov ebx, edx
mov r13, rcx
mov r14d, dword [rbp + 0x250]
mov dword [rbp - 0x30], reloc.WS2_32.dll_recv
lea rax, [0x18006c708]
mov qword [rbp - 0x28], rax
lea rax, [0x18029b3d8]
mov qword [rbp - 0x20], rax
mov ecx, 1
mov word [rbp - 0x18], cx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x16], xmm0
mov dword [rbp - 6], eax
mov word [rbp - 2], ax
mov dword [rbp], reloc.WS2_32.dll_recv
lea rax, [0x18006c730]
mov qword [rbp + 8], rax
lea rax, [0x18029b3e8]
mov qword [rbp + 0x10], rax
mov word [rbp + 0x18], cx
xor eax, eax
movups xmmword [rbp + 0x1a], xmm0
mov dword [rbp + 0x2a], eax
mov word [rbp + 0x2e], ax
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xc0]
call fcn.18020be10
lea rdx, [rbp - 0x30]
lea rax, [rbp]
cmp ebx, 0x19
cmovne rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.1801697e0
nop
call fcn.1800f2320
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1800f2df0
nop
mov r8d, 3
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0xc0]
call fcn.18016a8c0
nop
lea r15, [0x1800567d8]
mov qword [rbp + 0x30], r15
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x180157cf7
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180157cf1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801583ef
call fcn.1801e60f0
nop
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
mov qword [rbp + 0x98], r15
lea rcx, [rsp + 0x58]
call fcn.1800f5380
mov edi, dword [rax]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + reloc.WS2_32.dll_recv]
cmp eax, 0x70
sete byte [rsp + 0x20]
je 0x180157d44
test r14d, r14d
jne 0x180157d44
xor ebx, ebx
mov r12d, ebx
jmp 0x18015835b
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
mov r8d, 5
lea rdx, [0x18006c854]
lea rcx, [rsp + 0x30]
call fcn.180099770
mov qword [rsp + 0x28], r15
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov r8d, 0xa
lea rdx, [0x18006c848]
lea rcx, [rbp - 0x70]
call fcn.180099770
mov qword [rbp - 0x78], r15
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], 0
mov r8d, select
lea rdx, [0x18006c838]
lea rcx, [rsp + 0x68]
call fcn.180099770
mov qword [rsp + 0x60], r15
lea rcx, [rbp - 0x50]
call fcn.1800f69e0
nop
xor r8d, r8d
lea rdx, [rbp + 0x30]
mov rcx, rax
call fcn.1800f71d0
mov rbx, rax
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x78]
lea rcx, [rbp + 0xa0]
call fcn.180099630
lea rdx, [rbx + 8]
cmp qword [rbx + 0x20], 0x10
jb 0x180157e19
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x18]
lea rcx, [rbp + 0xa0]
call fcn.180099630
call fcn.1800f23b0
lea rdx, [rax + 8]
cmp qword [rax + 0x20], 0x10
jb 0x180157e3d
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x18]
lea rcx, [rbp + 0xa0]
call fcn.180099630
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0x10
cmovae rdx, qword [rbp - 0x70]
mov r8, qword [rbp - 0x60]
lea rcx, [rbp + 0xa0]
call fcn.180099630
call fcn.1800f23b0
mov rbx, rax
mov edx, edi
lea rcx, [rbp + 0x98]
call fcn.1800b8f60
mov rsi, rax
lea rdx, [rbx + 8]
cmp qword [rbx + 0x20], 0x10
jb 0x180157e93
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x18]
lea rcx, [rax + 8]
call fcn.180099630
lea rdx, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
lea rcx, [rsi + 8]
call fcn.180099630
call fcn.1800f23b0
mov rbx, rax
mov edx, r14d
mov rcx, rsi
call fcn.1800b8f60
lea r8, [rbx + 8]
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x180157ee3
mov rdx, qword [r8]
lea rbx, [rax + 8]
mov r8, qword [r8 + 0x10]
mov rcx, rbx
call fcn.180099630
call fcn.1800f23b0
lea rdx, [rax + 8]
cmp qword [rax + 0x20], 0x10
jb 0x180157f07
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x18]
mov rcx, rbx
call fcn.180099630
nop
mov qword [rbp + 0x30], r15
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x180157f54
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180157f4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801583f5
call fcn.1801e60f0
nop
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rbp + 0x48], xmm0
mov byte [rbp + 0x38], 0
lea rcx, [rbp - 0x50]
call fcn.180097180
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x180157fac
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180157fa6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801583fb
call fcn.1801e60f0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x180157fe8
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180157fe2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180158401
call fcn.1801e60f0
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180158026
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180158020
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180158407
call fcn.1801e60f0
nop
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
mov r8d, 4
lea rdx, [0x18006c754]
lea rcx, [rsp + 0x30]
call fcn.180099770
mov qword [rsp + 0x28], r15
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0xf8]
call fcn.18013a600
nop
mov qword [rsp + 0x28], r15
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x1801580aa
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801580a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015840d
call fcn.1801e60f0
nop
lea rdx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rdx, qword [rbp + 0xa0]
mov r8b, 0xa
lea rcx, [rbp + 0xc0]
call fcn.18014fd90
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
mov r8d, 4
lea rdx, [0x18006c774]
lea rcx, [rsp + 0x30]
call fcn.180099770
mov qword [rsp + 0x28], r15
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0xf8]
call fcn.18013a600
nop
mov qword [rsp + 0x28], r15
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180158154
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015814e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180158413
call fcn.1801e60f0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
mov rsi, r14
lea rax, [0x180056808]
mov qword [rbp + 0x30], rax
xor ebx, ebx
mov qword [rbp + 0x38], rbx
mov r12d, ebx
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], rbx
mov byte [rbp + 0x50], 1
mov dword [rbp + 0x54], ebx
mov qword [rbp + 0x58], rbx
movdqa xmmword [rbp + 0x60], xmm0
test r14d, r14d
je 0x1801581b2
mov rcx, r14
call fcn.1801e6100
mov r14, rax
mov qword [rbp + 0x48], rsi
mov r12, rsi
mov qword [rbp + 0x40], rsi
mov rax, rsi
jmp 0x1801581b8
mov r14, rbx
mov rax, rbx
mov qword [rbp + 0x38], r14
mov r15, rbx
test rax, rax
cmovne r15, r14
cmp byte [rsp + 0x20], 0
jne 0x18015821a
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x18015821a
mov rcx, r14
test r12, r12
cmove rcx, rbx
mov r8, rsi
mov rdx, rax
call fcn.18020b760
mov rcx, rsi
shr rcx, 2
mov rax, rbx
test rcx, rcx
je 0x18015821a
nop dword [rax + rax]
xor dword [r15 + rax*4], edi
imul rdi, rdi, 0x5917
add rdi, 0x4a6b
inc rax
cmp rax, rcx
jb 0x180158200
mov rdx, r14
test r12, r12
cmove rdx, rbx
mov r8, rsi
lea rcx, [rbp + 0xc0]
call fcn.18016c3a0
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x90], sendto
mov byte [rbp + 0x78], 0
lea rax, [0x1800567d8]
mov qword [rbp + 0x70], rax
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0xc0]
call fcn.18016b170
mov r12d, dword [rbp + 0x88]
mov r8d, dword [rsp + 0x24]
mov rax, qword [rbp + 0x88]
cmp r8, rax
jae 0x180158284
mov r15d, r12d
mov eax, r12d
jmp 0x18015828a
mov r8, rax
mov r15, rax
lea rdx, [rbp + 0x78]
mov rdi, qword [rbp + 0x78]
mov rsi, qword [rbp + 0x90]
cmp rsi, 0x10
jb 0x1801582a5
mov rdx, rdi
mov r15d, eax
mov rcx, qword [rsp + 0x50]
call fcn.18020b760
cmp r15d, dword [rsp + 0x24]
jbe 0x1801582d0
mov rax, qword [r13]
mov edx, WSACleanup
mov rcx, r13
call qword [rax + htons]
mov rsi, qword [rbp + 0x90]
mov rdi, qword [rbp + 0x78]
lea r15, [0x1800567d8]
mov qword [rbp + 0x70], r15
cmp rsi, 0x10
jb 0x180158313
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x18015830a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180158419
mov rcx, rdi
call fcn.1801e60f0
nop
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x90], sendto
mov byte [rbp + 0x78], 0
lea rax, [0x180056808]
mov qword [rbp + 0x30], rax
test r14, r14
je 0x180158341
mov rcx, r14
call fcn.1801e60f0
mov qword [rbp + 0x38], rbx
mov qword [rbp + 0x48], rbx
mov qword [rbp + 0x40], rbx
mov byte [rbp + 0x50], 1
lea rcx, [rbp + 0x58]
call fcn.180092990
nop
mov qword [rbp + 0x98], r15
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x1801583a0
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015839a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801583e9
call fcn.1801e60f0
nop
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
lea rcx, [rbp + 0xc0]
call fcn.180169900
mov eax, r12d
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.1801e67e0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
nop
call fcn.18010f960
int3