Function at 0x14001f040
Capabilities:
Encode data using xor
Hash data using fnv
Send data
Send data on socket

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push r13
lea rbp, [rax - 0x188]
sub rsp, 0x278
mov qword [rax - 0x18], rbx
mov r13, rcx
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
lock inc dword [rcx]
add rcx, 0x1c0
call sub.KERNEL32.dll_EnterCriticalSection
mov r8d, dword [r13 + 0xac]
mov byte [rbp + 0x198], 0
cmp r8d, 2
jne 0x14001f0a3
mov rcx, r13
call fcn.14001e140
jmp 0x14001f5ff
test byte [r13 + 0x7c], 2
jne 0x14001f5e6
cmp qword [r13 + 0x18], 0
je 0x14001f5e6
lea rbx, [r13 + 8]
xor r12d, r12d
movabs rcx, 0x8000000000000010
nop word [rax + rax]
mov rax, qword [rbx + 8]
lea r14, [rsp + 0x78]
mov qword [rsp + 0x68], r12
mov r11, r12
mov qword [rsp + 0x60], r14
mov r10, rcx
mov qword [rsp + 0x70], rcx
mov r15d, r12d
cmp rax, rbx
je 0x14001f5c4
mov rcx, qword [rbx]
mov r8d, dword [rbx + 0x18]
mov esi, r12d
cmp esi, 0x10
je 0x14001f14b
cmp rax, rcx
jne 0x14001f113
mov edi, dword [rbx + 0x1c]
jmp 0x14001f118
mov edi, 0x3ff0
mov edx, r15d
sub edi, r8d
not edx
cmp edi, edx
ja 0x14001f14b
add r8, 0x10
mov dword [rbp + rsi*4 + 0x80], edi
add r8, rax
add r15d, edi
mov rax, qword [rax + 8]
mov qword [rbp + rsi*8 + 0xc0], r8
inc esi
mov r8d, r12d
cmp rax, rbx
jne 0x14001f104
mov dword [rbp + 0x1a8], r15d
test esi, esi
je 0x14001f5c4
lea rdi, [rbp + 0x80]
movabs rdx, 0x7fffffffffffffff
lea r15, [rbp + 0xc0]
movabs r13, 0x3fffffffffffffff
nop dword [rax]
mov rax, qword [r15]
mov r8, r10
and r8, rdx
mov qword [rsp + 0x50], rax
mov eax, dword [rdi]
mov dword [rsp + 0x48], eax
cmp r11, r8
jne 0x14001f2be
lea r9, [r8 + 1]
cmp r9, r8
jbe 0x14001f2be
mov rdx, r10
mov ecx, 1
shr rdx, 1
and rdx, r13
lea rax, [rdx + r8]
cmp rax, r9
mov r9d, 0x811c9dc5
cmovae rcx, rdx
movabs rdx, 0x7fffffffffffffff
add rcx, r8
mov rax, rcx
xor rax, r10
and rax, rdx
lea rdx, [0x140126551]
xor r10, rax
movzx eax, byte [str.._AU_WSABUF__]
mov qword [rsp + 0x70], r10
test eax, eax
je 0x14001f216
nop dword [rax]
xor eax, r9d
lea rdx, [rdx + 1]
imul r9d, eax, 0x1000193
movzx eax, byte [rdx - 1]
test eax, eax
jne 0x14001f200
shl rcx, 4
lea r8, str.._AU_WSABUF__
mov dword [rsp + 0x28], r12d
mov edx, ntohs
mov dword [rsp + 0x20], 0xfffffffa
call fcn.140025e30
mov rcx, qword [rsp + 0x60]
mov r14, rax
mov r11, qword [rsp + 0x68]
mov rdx, r11
shl rdx, 4
add rdx, rcx
cmp rcx, rdx
je 0x14001f27e
nop dword [rax]
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
add rcx, 0x10
lea rax, [rax + 0x10]
movups xmmword [rax - 0x10], xmm0
cmp rcx, rdx
jne 0x14001f260
mov r11, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
bt r10, 0x3f
jb 0x14001f2a7
xor r9d, r9d
lea rdx, str.._AU_WSABUF__
lea r8d, [r9 - 6]
call fcn.140025f00
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x68]
movabs rdx, 0x7fffffffffffffff
mov qword [rsp + 0x60], r14
and r10, rdx
mov qword [rsp + 0x70], r10
mov rax, r11
shl rax, 4
add rax, r14
je 0x14001f2e1
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rax], xmm0
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
inc r11
add r15, 8
add rdi, 4
mov qword [rsp + 0x68], r11
sub rsi, 1
jne 0x14001f180
mov r13, qword [rbp + 0x190]
lea rbx, [r13 + 8]
test r11, r11
je 0x14001f5c4
mov rcx, qword [r13 + 0x98]
lea r9, [rbp + 0x1a0]
mov qword [rsp + 0x30], r12
mov r8d, r11d
mov qword [rsp + 0x28], r12
mov rdx, r14
mov dword [rsp + 0x20], r12d
mov dword [rbp + 0x1a0], r12d
call qword [sym.imp.WS2_32.dll_WSASend]
movsxd rdi, eax
test eax, eax
js 0x14001f34c
mov edi, dword [rbp + 0x1a0]
test rdi, rdi
jns 0x14001f365
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14001f450
mov rdi, r12
mov eax, dword [rbp + 0x1a8]
cmp rdi, rax
ja 0x14001f450
sub dword [r13 + 0x28], edi
mov r9d, edi
mov eax, edi
add qword [r13 + 0x208], rax
test edi, edi
je 0x14001f3df
mov rdx, qword [r13 + 0x10]
mov rax, qword [rbx]
mov r8, rdx
cmp rdx, rbx
je 0x14001f3cd
cmp r8, rax
jne 0x14001f3a2
mov ecx, dword [r13 + 0x24]
jmp 0x14001f3a7
mov ecx, 0x3ff0
mov r10d, dword [r13 + 0x20]
sub ecx, r10d
cmp r9d, ecx
jb 0x14001f3c5
mov dword [r13 + 0x20], r12d
sub r9d, ecx
mov r8, qword [r8 + 8]
cmp r8, rbx
jne 0x14001f397
jmp 0x14001f3cd
lea eax, [r10 + r9]
mov dword [r13 + 0x20], eax
mov rcx, rbx
call fcn.14001f7a0
cmp qword [r13 + 0x18], r12
jne 0x14001f3df
mov dword [r13 + 0x24], r12d
movabs rax, 0x8000000000000000
test rdi, rdi
je 0x14001f420
movabs rcx, 0x8000000000000010
test qword [rsp + 0x70], rax
jne 0x14001f0d0
mov rcx, qword [rsp + 0x60]
lea rdx, str.._AU_WSABUF__
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
jmp 0x14001f0c0
and byte [r13 + 0x7c], 0xfe
test qword [rsp + 0x70], rax
jne 0x14001f5e1
mov rcx, qword [rsp + 0x60]
lea rdx, str.._AU_WSABUF__
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
mov rsi, r12
jmp 0x14001f601
movabs rax, 0x8000000000000000
mov byte [rbp + 0x198], 1
test qword [rsp + 0x70], rax
jne 0x14001f480
mov rcx, qword [rsp + 0x60]
lea rdx, str.._AU_WSABUF__
xor r9d, r9d
lea r8d, [r9 - 6]
call fcn.140025f00
lea r14, [r13 + 0x170]
mov rcx, r14
call sub.KERNEL32.dll_EnterCriticalSection
lea r15, [r13 + 0x198]
inc dword [r15]
lea rbx, [r13 + 0x19c]
mov qword [rbp + 0x190], rbx
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, r14
mov dword [rbx], eax
call fcn.1400b8230
mov rcx, qword [0x140128ae0]
lea r12, [r13 + 0xb0]
mov rsi, qword [r12]
mov rdx, r13
call fcn.140022570
lea rdi, [r13 + 0x98]
mov rcx, r13
mov rdx, qword [rdi]
call fcn.14001e420
mov rax, qword [rdi]
lea rcx, [r13 + 0x1c0]
mov qword [rsp + 0x40], rax
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, qword [0x140128ae0]
mov r8d, dword [r13 + 0xac]
mov dword [r13 + 0xac], 6
test rcx, rcx
je 0x14001f51c
mov rdx, r13
call fcn.140022c00
lea rcx, [r13 + 0x1c0]
call fcn.1400b8230
lea rcx, [r13 + 0x1c0]
call fcn.1400b8230
cmp byte [r13 + 0x221], 0
mov rbx, r15
mov qword [rbp + 0x1a8], r12
jne 0x14001f653
test rsi, rsi
je 0x14001f577
cmp qword [rsp + 0x40], 0xffffffffffffffff
je 0x14001f577
mov rax, qword [rsi]
mov rbx, qword [rax + 0x18]
call fcn.1400d9fe0
lea r9, [r13 + 0x128]
mov r8d, eax
mov rdx, r13
mov rcx, rsi
call rbx
lea rcx, [r13 + 0x1c0]
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, r14
mov qword [rdi], 0xffffffffffffffff
call sub.KERNEL32.dll_EnterCriticalSection
mov rax, qword [r13 + 0x1a0]
dec dword [r15]
test rax, rax
je 0x14001f5b0
mov qword [r12], rax
mov qword [r13 + 0x1a0], 0
mov rcx, r14
call fcn.1400b8230
lea rcx, [r13 + 0x1c0]
jmp 0x14001f70a
bt r10, 0x3f
jb 0x14001f5e1
xor r9d, r9d
lea rdx, str.._AU_WSABUF__
mov rcx, r14
lea r8d, [r9 - 6]
call fcn.140025f00
mov rsi, r12
jmp 0x14001f601
cmp byte [r13 + 0x221], 0
jne 0x14001f5ff
mov rcx, qword [0x140128ae0]
mov rdx, r13
call fcn.140022c00
xor esi, esi
lea r12, [r13 + 0xb0]
lea rcx, [r13 + 0x1c0]
mov qword [rbp + 0x1a8], r12
lea r14, [r13 + 0x170]
lea rdi, [r13 + 0x98]
lea r15, [r13 + 0x198]
lea rbx, [r13 + 0x19c]
call fcn.1400b8230
cmp byte [r13 + 0x221], 0
mov qword [rbp + 0x190], rbx
lea rbx, [r13 + 0x198]
je 0x14001f70f
cmp byte [rbp + 0x198], 0
jne 0x14001f6b9
lea rcx, [r13 + 0x1c0]
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, r14
call sub.KERNEL32.dll_EnterCriticalSection
inc dword [rbx]
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, qword [rbp + 0x190]
mov dword [rcx], eax
mov rcx, r14
call fcn.1400b8230
mov rsi, qword [rbp + 0x1a8]
lea rbx, [r13 + 0x1c0]
mov rcx, rbx
mov rsi, qword [rsi]
call fcn.1400b8230
mov rcx, qword [rdi]
lea rdx, [0x1400de310]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_send]
jmp 0x14001f6c0
lea rbx, [r13 + 0x1c0]
test rsi, rsi
je 0x14001f6d1
mov rax, qword [rsi]
mov rdx, r13
mov rcx, rsi
call qword [rax + 0x28]
mov rcx, rbx
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, r14
call sub.KERNEL32.dll_EnterCriticalSection
mov rax, qword [r13 + 0x1a0]
dec dword [r15]
test rax, rax
je 0x14001f6ff
mov qword [r12], rax
mov qword [r13 + 0x1a0], 0
mov rcx, r14
call fcn.1400b8230
mov rcx, rbx
call fcn.1400b8230
mov rax, 0xffffffffffffffff
lock xadd dword [r13], eax
mov r15, qword [rsp + 0x248]
mov r14, qword [rsp + 0x250]
mov r12, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x260]
mov rsi, qword [rsp + 0x268]
mov rbx, qword [rsp + 0x270]
sub eax, 1
jg 0x14001f784
mov rcx, qword [0x140128ae0]
test rcx, rcx
je 0x14001f76f
mov rdx, r13
add rsp, 0x278
pop r13
pop rbp
jmp fcn.1400224e0
mov rcx, r13
call fcn.14001d440
mov edx, 0x228
mov rcx, r13
call fcn.1400bcf88
add rsp, 0x278
pop r13
pop rbp
ret