Function at 0x180157c90
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.18020bef0
lea rdx, [rbp - 0x30]
lea rax, [rbp]
cmp ebx, 0x19
cmovne rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.1801698c0
nop
call fcn.1800f2400
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1800f2ed0
nop
mov r8d, 3
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0xc0]
call fcn.18016a9a0
nop
lea r15, [0x1800567d8]
mov qword [rbp + 0x30], r15
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x180157dd7
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180157dd1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584cf
call fcn.1801e61d0
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.1800f5460
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 0x180157e24
test r14d, r14d
jne 0x180157e24
xor ebx, ebx
mov r12d, ebx
jmp 0x18015843b
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.1800f6ac0
nop
xor r8d, r8d
lea rdx, [rbp + 0x30]
mov rcx, rax
call fcn.1800f72b0
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 0x180157ef9
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x18]
lea rcx, [rbp + 0xa0]
call fcn.180099630
call fcn.1800f2490
lea rdx, [rax + 8]
cmp qword [rax + 0x20], 0x10
jb 0x180157f1d
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.1800f2490
mov rbx, rax
mov edx, edi
lea rcx, [rbp + 0x98]
call fcn.1800b9040
mov rsi, rax
lea rdx, [rbx + 8]
cmp qword [rbx + 0x20], 0x10
jb 0x180157f73
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.1800f2490
mov rbx, rax
mov edx, r14d
mov rcx, rsi
call fcn.1800b9040
lea r8, [rbx + 8]
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x180157fc3
mov rdx, qword [r8]
lea rbx, [rax + 8]
mov r8, qword [r8 + 0x10]
mov rcx, rbx
call fcn.180099630
call fcn.1800f2490
lea rdx, [rax + 8]
cmp qword [rax + 0x20], 0x10
jb 0x180157fe7
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 0x180158034
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015802e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584d5
call fcn.1801e61d0
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 0x18015808c
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180158086
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584db
call fcn.1801e61d0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1801580c8
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801580c2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584e1
call fcn.1801e61d0
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180158106
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180158100
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584e7
call fcn.1801e61d0
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.18013a6e0
nop
mov qword [rsp + 0x28], r15
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x18015818a
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180158184
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584ed
call fcn.1801e61d0
nop
lea rdx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rdx, qword [rbp + 0xa0]
mov r8b, 0xa
lea rcx, [rbp + 0xc0]
call fcn.18014fe70
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.18013a6e0
nop
mov qword [rsp + 0x28], r15
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180158234
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015822e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584f3
call fcn.1801e61d0
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 0x180158292
mov rcx, r14
call fcn.1801e61e0
mov r14, rax
mov qword [rbp + 0x48], rsi
mov r12, rsi
mov qword [rbp + 0x40], rsi
mov rax, rsi
jmp 0x180158298
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 0x1801582fa
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1801582fa
mov rcx, r14
test r12, r12
cmove rcx, rbx
mov r8, rsi
mov rdx, rax
call fcn.18020b840
mov rcx, rsi
shr rcx, 2
mov rax, rbx
test rcx, rcx
je 0x1801582fa
nop dword [rax + rax]
xor dword [r15 + rax*4], edi
imul rdi, rdi, 0x5917
add rdi, 0x4a6b
inc rax
cmp rax, rcx
jb 0x1801582e0
mov rdx, r14
test r12, r12
cmove rdx, rbx
mov r8, rsi
lea rcx, [rbp + 0xc0]
call fcn.18016c480
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.18016b250
mov r12d, dword [rbp + 0x88]
mov r8d, dword [rsp + 0x24]
mov rax, qword [rbp + 0x88]
cmp r8, rax
jae 0x180158364
mov r15d, r12d
mov eax, r12d
jmp 0x18015836a
mov r8, rax
mov r15, rax
lea rdx, [rbp + 0x78]
mov rdi, qword [rbp + 0x78]
mov rsi, qword [rbp + 0x90]
cmp rsi, 0x10
jb 0x180158385
mov rdx, rdi
mov r15d, eax
mov rcx, qword [rsp + 0x50]
call fcn.18020b840
cmp r15d, dword [rsp + 0x24]
jbe 0x1801583b0
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 0x1801583f3
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x1801583ea
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584f9
mov rcx, rdi
call fcn.1801e61d0
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 0x180158421
mov rcx, r14
call fcn.1801e61d0
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 0x180158480
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015847a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801584c9
call fcn.1801e61d0
nop
movdqa xmm0, xmmword [0x180056d80]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
lea rcx, [rbp + 0xc0]
call fcn.1801699e0
mov eax, r12d
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.1801e68c0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
nop
call fcn.18010fa40
int3