Function at 0x140008680
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x98]
sub rsp, 0x198
mov rcx, qword [0x140167a98]
movss xmm0, dword [rcx + 0x1c0]
mulss xmm0, dword [0x140131a5c]
cvttss2si r13d, xmm0
mov dword [rbp + 0xf0], r13d
movss xmm0, dword [rcx + 0x1c4]
mulss xmm0, dword [0x140131a5c]
cvttss2si r15d, xmm0
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x1400086eb
lea r14d, [r13 + 1]
lea r11d, [r13 + 2]
jmp 0x1400086f3
lea r14d, [r13 - 1]
lea r11d, [r13 - 2]
mov dword [rbp + 0xe8], r11d
mov dword [rbp + 0xe0], r14d
mov byte [0x140166a04], 1
add rcx, 0x140
mov r9d, r15d
mov r8d, r14d
lea rdx, [rbp + 0x70]
call fcn.140005890
nop
mov rcx, qword [0x140167a98]
add rcx, 0x140
mov r9d, r15d
mov r8d, r11d
lea rdx, [rbp + 0x30]
call fcn.140005890
nop
movzx edi, word [rbp + 0x70]
movzx esi, word [rbp + 0x30]
mov r12, 0xffffffffffffffff
cmp byte [0x140166a0d], 0
je 0x140008eb9
nop dword [rax]
movsxd rbx, dword [0x14015d1a4]
lea rcx, [rbp + 8]
call fcn.140005a00
mov rax, qword [rbp + 8]
mov qword [rsp + 0x28], rax
test rbx, rbx
jle 0x1400087aa
imul rdx, rbx, 0xf4240
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rdx
cmp rax, rcx
jge 0x1400087a5
lea rcx, [rdx + rax]
mov qword [rsp + 0x28], rcx
jmp 0x1400087aa
mov qword [rsp + 0x28], r8
lea rcx, [rsp + 0x28]
call fcn.14002dce0
cmp byte [0x140166a0d], 0
je 0x140008eb9
test edi, edi
je 0x1400087d3
mov edx, dword [0x140166a18]
cmp edi, edx
jne 0x140008ae3
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x140008add
test edi, edi
jne 0x140008add
cmp byte [0x140166a0d], dil
je 0x140008eb9
mov r9, qword [0x140167a98]
mov edx, dword [0x140166a18]
mov rax, qword [r9 + 0xa8]
mov rcx, qword [rax + 8]
mov r8, rax
cmp byte [rcx + 0x19], dil
jne 0x140008837
nop dword [rax]
cmp dword [rcx + 0x1c], edx
jae 0x14000882b
mov rcx, qword [rcx + 0x10]
jmp 0x140008831
mov r8, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140008820
cmp byte [r8 + 0x19], 0
jne 0x140008ae3
cmp edx, dword [r8 + 0x1c]
jb 0x140008ae3
cmp r8, rax
je 0x140008ae3
mov dword [rbp + 0xf8], edx
lea rcx, [r9 + 0xa8]
lea rdx, [rbp + 0xf8]
call fcn.140029b00
cmp byte [rax + 2], 1
jb 0x140008add
cmp byte [0x140166a0d], 0
je 0x140008eb9
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x1400088e8
movsxd rbx, dword [0x14015d1a4]
lea rcx, [rbp + 0x10]
call fcn.140005a00
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x30], rax
test rbx, rbx
jle 0x1400088de
imul rdx, rbx, 0xf4240
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rdx
cmp rax, rcx
jge 0x1400088d9
lea rcx, [rdx + rax]
mov qword [rsp + 0x30], rcx
jmp 0x1400088de
mov qword [rsp + 0x30], r8
lea rcx, [rsp + 0x30]
call fcn.14002dce0
cmp byte [0x140166a0d], 0
je 0x140008eb9
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x140008add
mov r8d, r15d
mov edx, r14d
mov ecx, dword [0x140166a18]
call fcn.1400d6990
mov rdi, qword [0x140167a98]
cmp byte [rdi + 0x1d0], 0
je 0x140008add
cmp byte [0x1401669fb], 0
je 0x140008add
mov rax, qword [rdi + 0x258]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140008add
mov esi, r15d
shl esi, 5
shl r14d, 5
movabs r13, 0x7fffffffffffffff
nop dword [rax]
nop word [rax + rax]
cvttss2si eax, dword [rdi + 0x1c4]
cvttss2si ecx, dword [rdi + 0x1c0]
sub eax, esi
sub ecx, r14d
imul ecx, ecx
imul eax, eax
add ecx, eax
cmp ecx, 0x19000
jg 0x140008ab8
cmp word [rbx + 0x14], 0x70
jne 0x140008ab8
movsxd rdi, dword [0x14015d1b8]
lea rcx, [rbp + 0x18]
call fcn.140005a00
mov rax, qword [rbp + 0x18]
mov qword [rsp + 0x38], rax
test rdi, rdi
jle 0x1400089e4
imul rdx, rdi, 0xf4240
mov rcx, r13
sub rcx, rdx
cmp rax, rcx
jge 0x1400089df
lea rcx, [rdx + rax]
mov qword [rsp + 0x38], rcx
jmp 0x1400089e4
mov qword [rsp + 0x38], r13
lea rcx, [rsp + 0x38]
call fcn.14002dce0
mov word [rsp + 0x51], 0
mov byte [rsp + 0x53], 0
xor eax, eax
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], eax
mov qword [rbp - 0x7c], rax
movss xmm0, dword [rbx + 0x18]
movss dword [rsp + 0x68], xmm0
movss xmm1, dword [rbx + 0x1c]
movss dword [rsp + 0x6c], xmm1
mov byte [rsp + 0x50], listen
mov dword [rsp + 0x54], r12d
mov eax, dword [rbx + 0x24]
mov dword [rsp + 0x64], eax
mov rdi, qword [0x140167a98]
cmp qword [rdi + 0x10], 0
je 0x140008ab8
cmp qword [rdi + 8], 0
je 0x140008ab8
mov edx, 0x41
xor ecx, ecx
lea r8d, [rdx - 0x40]
call fcn.140061a00
mov r8, qword [rax + 0x10]
mov dword [r8], 4
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [r8 + 4], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [r8 + 0x14], xmm1
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [r8 + 0x24], xmm0
movsd xmm1, qword [rbp - 0x80]
movsd qword [r8 + 0x34], xmm1
mov edx, dword [rbp - 0x78]
mov dword [r8 + 0x3c], edx
xor ecx, ecx
mov byte [r8 + 0x40], cl
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
call fcn.140108190
mov rdi, qword [0x140167a98]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [rdi + 0x258]
jne 0x140008970
mov r13d, dword [rbp + 0xf0]
mov r14d, dword [rbp + 0xe0]
movzx esi, word [rbp + 0x30]
mov edx, dword [0x140166a18]
cmp byte [0x140166a0d], 0
je 0x140008eb9
test esi, esi
je 0x140008afc
cmp esi, edx
jne 0x140008df8
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x140008df8
test esi, esi
jne 0x140008df8
movzx r9d, byte [0x140166a0d]
test r9b, r9b
je 0x140008eb9
mov r10, qword [0x140167a98]
mov r8d, dword [0x140166a18]
mov rax, qword [r10 + 0xa8]
mov rcx, qword [rax + 8]
mov rdx, rax
cmp byte [rcx + 0x19], sil
jne 0x140008b68
nop word [rax + rax]
cmp dword [rcx + 0x1c], r8d
jae 0x140008b5c
mov rcx, qword [rcx + 0x10]
jmp 0x140008b62
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x140008b50
cmp byte [rdx + 0x19], 0
jne 0x140008e1d
cmp r8d, dword [rdx + 0x1c]
jb 0x140008e1d
cmp rdx, rax
je 0x140008e1d
mov dword [rsp + 0x20], r8d
lea rcx, [r10 + 0xa8]
lea rdx, [rsp + 0x20]
call fcn.140029b00
cmp byte [rax + 2], 1
jb 0x140008e15
cmp byte [0x140166a0d], 0
je 0x140008eb9
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x140008c15
movsxd rbx, dword [0x14015d1a4]
lea rcx, [rbp + 0x20]
call fcn.140005a00
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x40], rax
test rbx, rbx
jle 0x140008c0b
imul rdx, rbx, 0xf4240
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rdx
cmp rax, rcx
jge 0x140008c06
lea rcx, [rax + rdx]
mov qword [rsp + 0x40], rcx
jmp 0x140008c0b
mov qword [rsp + 0x40], r8
lea rcx, [rsp + 0x40]
call fcn.14002dce0
cmp byte [0x140166a0d], 0
je 0x140008eb9
mov edx, r15d
mov ecx, r13d
call fcn.140007340
test al, al
je 0x140008df8
mov r8d, r15d
mov edx, dword [rbp + 0xe8]
mov ecx, dword [0x140166a18]
call fcn.1400d6990
mov rdi, qword [0x140167a98]
cmp byte [rdi + 0x1d0], 0
je 0x140008df8
cmp byte [0x1401669fb], 0
je 0x140008df8
mov rax, qword [rdi + 0x258]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140008df8
mov esi, r15d
shl esi, 5
shl r14d, 5
movabs r13, 0x7fffffffffffffff
nop dword [rax]
nop word [rax + rax]
cvttss2si eax, dword [rdi + 0x1c4]
cvttss2si ecx, dword [rdi + 0x1c0]
sub eax, esi
sub ecx, r14d
imul ecx, ecx
imul eax, eax
add ecx, eax
cmp ecx, 0x19000
jg 0x140008dda
cmp word [rbx + 0x14], 0x70
jne 0x140008dda
movsxd rdi, dword [0x14015d1b8]
lea rcx, [rbp + 0x28]
call fcn.140005a00
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x48], rax
test rdi, rdi
jle 0x140008d14
imul rdx, rdi, 0xf4240
mov rcx, r13
sub rcx, rdx
cmp rax, rcx
jge 0x140008d0f
lea rcx, [rax + rdx]
mov qword [rsp + 0x48], rcx
jmp 0x140008d14
mov qword [rsp + 0x48], r13
lea rcx, [rsp + 0x48]
call fcn.14002dce0
mov word [rbp - 0x6f], 0
mov byte [rbp - 0x6d], 0
xor eax, eax
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x60], eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x40], eax
mov qword [rbp - 0x3c], rax
movss xmm0, dword [rbx + 0x18]
movss dword [rbp - 0x58], xmm0
movss xmm1, dword [rbx + 0x1c]
movss dword [rbp - 0x54], xmm1
mov byte [rbp - 0x70], listen
mov dword [rbp - 0x6c], r12d
mov eax, dword [rbx + 0x24]
mov dword [rbp - 0x5c], eax
mov rdi, qword [0x140167a98]
cmp qword [rdi + 0x10], 0
je 0x140008dda
cmp qword [rdi + 8], 0
je 0x140008dda
mov edx, 0x41
xor ecx, ecx
lea r8d, [rdx - 0x40]
call fcn.140061a00
mov r8, qword [rax + 0x10]
mov dword [r8], 4
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [r8 + 4], xmm0
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [r8 + 0x14], xmm1
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [r8 + 0x24], xmm0
movsd xmm1, qword [rbp - 0x40]
movsd qword [r8 + 0x34], xmm1
mov edx, dword [rbp - 0x38]
mov dword [r8 + 0x3c], edx
xor ecx, ecx
mov byte [r8 + 0x40], cl
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
call fcn.140108190
mov rdi, qword [0x140167a98]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [rdi + 0x258]
jne 0x140008ca0
mov r13d, dword [rbp + 0xf0]
movzx esi, word [rbp + 0x30]
cmp byte [0x140166a0d], 0
je 0x140008eb9
mov r14d, dword [rbp + 0xe0]
movzx edi, word [rbp + 0x70]
jmp 0x140008760
movzx r9d, byte [0x140166a0d]
test r9b, r9b
je 0x140008eb9
movdqa xmm0, xmmword [0x140134960]
movdqu xmmword [rbp - 0x30], xmm0
movdqa xmm1, xmmword [0x140137020]
movdqu xmmword [rbp - 0x20], xmm1
movdqa xmm0, xmmword [0x140134120]
movdqu xmmword [rbp - 0x10], xmm0
mov dword [rbp], 0x7e696f25
mov word [rbp + 4], 0x100
xor ecx, ecx
nop dword [rax]
lea eax, [rcx - 0x2b]
xor byte [rbp + rcx - 0x30], al
inc rcx
cmp rcx, 0x34
jb 0x140008e60
mov byte [rbp + 5], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
lea rax, [rbp - 0x30]
mov r8, r12
inc r8
cmp byte [rax + r8], 0
jne 0x140008e92
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x50]
call fcn.14002c630
lea rcx, [rbp + 0x50]
call fcn.1400d15c0
mov byte [0x140166a0d], 0
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x140008ef3
mov eax, r12d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140008ef3
mov rbx, qword [rbp + 0x40]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140008ef3
mov rcx, qword [rbp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x140008f34
mov eax, r12d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140008f34
mov rbx, qword [rbp + 0x80]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r12d
cmp r12d, 1
jne 0x140008f34
mov rcx, qword [rbp + 0x80]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
add rsp, 0x198
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret