Function at 0x140065830
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x58
mov r12, qword [rsp + 0xb8]
mov r15, rcx
mov rcx, qword [rsp + 0xb0]
mov r10, r9
mov rsi, r8
mov r14, rdx
mov edi, 1
test r12, r12
je 0x14006587d
mov rax, qword [r15 + 0x178]
mov qword [r12], rax
cmp dword [r15 + 0x74], 0
jge 0x140065894
xor eax, eax
add rsp, 0x58
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rax, qword [r9]
test rax, rax
je 0x1400658c1
test rcx, rcx
je 0x1400658a7
cmp qword [rcx], 0
jne 0x1400658c1
mov edx, 0xffffffec
mov rcx, r15
add rsp, 0x58
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
jmp 0x14006b1f0
xor edx, edx
mov qword [rsp + 0x50], rbp
test rax, rax
mov qword [rsp + 0x48], r13
cmovne rdx, rcx
cmp dword [r15 + 0x48], 0
mov qword [rsp + 0x38], rdx
jne 0x1400658ec
mov rax, qword [r14]
mov qword [r15 + 0x20], rax
mov rax, qword [r8]
jmp 0x1400658f5
mov edi, 2
lea rax, [r15 + 0x40]
mov qword [r15 + 0x18], rax
lea r11, [0x140000000]
mov r13d, 0x40
jmp 0x140065920
mov r14, qword [rsp + 0x98]
mov r12, qword [rsp + 0xb8]
lea rbp, [r15 + 0x2a8]
cmp edi, 1
je 0x1400659cc
cmp edi, 2
jne 0x140066b1e
cmp qword [r15 + 0x78], 0
je 0x140065975
mov r8, rdx
mov dword [rsp + 0x20], 1
mov rdx, r10
mov r9, r12
mov rcx, r15
call fcn.14006b260
test eax, eax
js 0x140066ac1
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov ecx, dword [r15 + 0x48]
test ecx, ecx
je 0x140066ae4
cmp qword [r15 + 0x20], 0
jne 0x1400659a0
mov dword [r15 + 0x48], 0
mov rax, qword [r14]
mov qword [r15 + 0x20], rax
mov rax, qword [rsi]
mov qword [r15 + 0x18], rax
jmp 0x1400659c7
cmp qword [r14], 0
je 0x140066ac3
mov rax, qword [rsi]
movzx eax, byte [rax]
mov byte [rcx + r15 + 0x40], al
inc dword [r15 + 0x48]
mov eax, dword [r15 + 0x48]
mov qword [r15 + 0x20], rax
inc qword [rsi]
dec qword [r14]
mov edi, 1
movsxd rax, dword [r15]
cmp eax, 0x1a
ja case.default.0x1400659e3
mov ecx, dword [r11 + rax*4 + 0x66b94]
add rcx, r11
jmp rcx
lea rcx, [r15 + 8]
call fcn.140076410
test eax, eax
jne 0x140065a10
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov edi, 2
jmp case.default.0x1400659e3
mov r10d, dword [r15 + 0x298]
mov eax, r10d
and eax, 0xffffffdf
mov dword [r15 + 0x298], eax
mov ecx, dword [r15 + 0x10]
mov edx, dword [reloc.WS2_32.dll_accept]
mov r8, qword [r15 + 8]
mov rax, r8
shr rax, cl
lea r9d, [rcx + 1]
mov dword [r15 + 0x10], r9d
test edx, eax
jne 0x140065a54
mov dword [r15 + 0x29c], reloc.WS2_32.dll_recv
jmp 0x140065af3
mov ecx, r9d
mov rax, r8
shr rax, cl
lea ecx, [r9 + 3]
and eax, dword [reloc.WS2_32.dll_getsockopt]
mov dword [r15 + 0x10], ecx
je 0x140065a79
add eax, 0x11
mov dword [r15 + 0x29c], eax
jmp 0x140065af3
mov rax, r8
shr rax, cl
add ecx, 3
and eax, dword [reloc.WS2_32.dll_getsockopt]
mov dword [r15 + 0x10], ecx
cmp eax, 1
jne 0x140065ad8
test r10b, 0x20
je 0x140065ab0
mov edx, dword [reloc.WS2_32.dll_accept]
lea eax, [rcx + 1]
shr r8, cl
and r8d, edx
mov dword [r15 + 0x10], eax
cmp r8d, 1
jne 0x140065ace
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov edi, 0xfffffff3
jmp case.default.0x1400659e3
or dword [r15 + 0x298], 0x20
jmp 0x140065af3
test eax, eax
je 0x140065ae8
add eax, 8
mov dword [r15 + 0x29c], eax
jmp 0x140065af3
mov dword [r15 + 0x29c], shutdown
movzx eax, byte [r15 + 0x298]
mov edi, 1
and al, 0x20
neg al
sbb eax, eax
add eax, 2
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov dword [r15], eax
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
mov r8d, dword [r15 + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 6
jae 0x140065b85
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [r15 + 0x20]
test rdx, rdx
je 0x140065c09
mov rcx, qword [r15 + 0x18]
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
add dword [r15 + 0x10], 0xfffffff8
mov r8d, dword [r15 + 0x10]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [rdx - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, r8d
cmp eax, 6
jb 0x140065b40
mov rax, qword [r15 + 8]
mov ecx, r8d
shr rax, cl
and eax, dword [0x1406b3268]
mov dword [r15 + 0x29c], eax
add dword [r15 + 0x10], 6
mov eax, dword [r15 + 0x29c]
sub eax, 0xa
cmp eax, 0x14
ja 0x140065c18
mov dword [r15], 2
mov ecx, dword [r15 + 0x29c]
mov eax, 1
shl eax, cl
mov edx, 0x3030
mov rcx, qword [r15 + 0x38]
sub eax, 0x10
mov dword [r15 + 0x50], eax
mov rax, qword [r15 + 0x28]
call qword [0x14050ba78]
mov qword [r15 + 0xf0], rax
test rax, rax
jne 0x140065c27
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov edi, 0xffffffe2
jmp case.default.0x1400659e3
mov rdx, qword [rsp + 0x38]
mov edi, 2
jmp case.default.0x1400659e3
mov rdx, qword [rsp + 0x38]
mov edi, 0xfffffff3
jmp case.default.0x1400659e3
add rax, 0x1da0
mov dword [r15], 3
mov qword [r15 + 0xf8], rax
mov rcx, r15
call fcn.140077160
mov dword [r15], 4
lea rdx, [r15 + 8]
mov rcx, r15
call fcn.140067b00
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
test byte [r15 + 0x298], 6
lea r11, [0x140000000]
je 0x140065cbe
mov ecx, dword [r15 + 0x10]
mov r8d, ecx
neg r8d
and r8d, 7
je 0x140065cbe
mov rdx, qword [r15 + 8]
lea eax, [rcx + r8]
shr rdx, cl
test dword [r11 + r8*4 + 0x6b3250], edx
mov dword [r15 + 0x10], eax
je 0x140065cbe
mov rdx, qword [rsp + 0x38]
mov edi, 0xfffffff2
jmp case.default.0x1400659e3
test byte [r15 + 0x298], 4
je 0x140065ce1
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [r15], recv
jmp case.default.0x1400659e3
cmp dword [r15 + 0x108], 0
jne 0x140065d04
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [r15], recv
jmp case.default.0x1400659e3
mov rcx, r15
call fcn.140065700
test byte [r15 + 0x298], 2
je case.0x1400659e3.17
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [r15], recv
jmp case.default.0x1400659e3
mov qword [r15], reloc.WS2_32.dll_select
lea rax, [r15 + 0x3b8]
mov qword [r15 + 0x390], rax
mov qword [r15 + 0x2f0], 0
mov qword [r15 + 0x2e8], 0
movsxd rax, dword [r15 + 4]
cmp eax, 3
jl 0x140065d7c
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [r15], 5
jmp case.default.0x1400659e3
add rax, 0x47
lea rdx, [r15 + 8]
mov rcx, r15
lea r8, [r15 + rax*4]
call fcn.140068170
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
movsxd rax, dword [r15 + 4]
inc dword [r15 + rax*4 + 0x11c]
movsxd rcx, dword [r15 + 4]
cmp dword [r15 + rcx*4 + 0x11c], 2
jae 0x140065ddd
lea eax, [rcx + 1]
mov dword [r15 + 4], eax
lea r11, [0x140000000]
jmp case.default.0x1400659e3
mov dword [r15], reloc.WS2_32.dll_send
movsxd rdx, dword [r15 + 4]
xor r9d, r9d
imul eax, edx, 0x278
mov qword [rsp + 0x20], r15
mov ecx, dword [r15 + rdx*4 + 0x11c]
add ecx, 2
movsxd rdx, eax
mov rax, qword [r15 + 0xf0]
lea r8, [rax + rdx*4]
mov edx, ecx
call fcn.140068fe0
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
mov dword [r15], shutdown
imul eax, dword [r15 + 4], 0x18c
mov edx, 0x1a
xor r9d, r9d
mov qword [rsp + 0x20], r15
movsxd rcx, eax
mov rax, qword [r15 + 0xf8]
lea r8, [rax + rcx*4]
mov ecx, edx
call fcn.140068fe0
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
mov dword [r15], reloc.WS2_32.dll_setsockopt
lea r11, [0x140000000]
movsxd rdx, dword [r15 + 4]
imul eax, edx, 0x18c
cmp dword [r15 + 0x294], 0
lea rsi, [r15 + rdx*4]
movsxd rcx, eax
mov rax, qword [r15 + 0xf8]
lea r9, [rax + rcx*4]
jne 0x140065f98
mov r8d, dword [r15 + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 0xf
jae 0x140065f15
nop dword [rax]
mov rdx, qword [r15 + 0x20]
test rdx, rdx
je 0x140065f72
mov rcx, qword [r15 + 0x18]
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
add dword [r15 + 0x10], 0xfffffff8
mov r8d, dword [r15 + 0x10]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [rdx - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, r8d
cmp eax, 0xf
jb 0x140065ed0
mov rax, qword [r15 + 8]
mov ecx, r8d
shr rax, cl
and eax, dword [0x1406b328c]
mov r10d, eax
movzx eax, al
lea r9, [r9 + rax*4]
movzx eax, byte [r9]
cmp al, 8
jbe 0x140065f61
sub eax, 8
shr r10d, 8
add r8d, 8
mov dword [r15 + 0x10], r8d
mov edx, dword [r11 + rax*4 + 0x6b3250]
movzx eax, word [r9 + 2]
and edx, r10d
add edx, eax
movzx eax, byte [r9 + rdx*4]
lea r9, [r9 + rdx*4]
movzx eax, al
add eax, r8d
mov dword [r15 + 0x10], eax
movzx r10d, word [r9 + 2]
jmp 0x140065f9f
lea r8, [rsp + 0x90]
mov rcx, r9
lea rdx, [r15 + 8]
call fcn.14006a2d0
test eax, eax
je 0x14006606e
mov r10d, dword [rsp + 0x90]
jmp 0x140065fa7
mov r10d, dword [r15 + 0x10c]
mov dword [rsp + 0x90], r10d
mov r8d, dword [r15 + 0x10]
lea rcx, [0x140000000]
mov eax, r10d
movzx r9d, byte [rcx + rax*4 + 0x6b32e2]
movzx r11d, word [rcx + rax*4 + 0x6b32e0]
mov eax, r13d
sub eax, r8d
cmp eax, r9d
jae 0x140066017
mov rdx, qword [r15 + 0x20]
test rdx, rdx
je 0x14006605c
mov rcx, qword [r15 + 0x18]
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
add dword [r15 + 0x10], 0xfffffff8
mov r8d, dword [r15 + 0x10]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [rdx - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, r8d
cmp eax, r9d
jb 0x140065fd2
mov rax, qword [r15 + 8]
mov ecx, r8d
shr rax, cl
lea rcx, [0x140000000]
mov ecx, dword [rcx + r9*4 + 0x6b3250]
and ecx, eax
lea eax, [r9 + r8]
mov dword [r15 + 0x10], eax
lea eax, [rcx + r11]
mov dword [rsi + 0x110], eax
inc dword [r15 + 4]
mov dword [r15 + 0x294], 0
mov dword [r15], reloc.WS2_32.dll_select
jmp 0x140066073
mov dword [r15 + 0x10c], r10d
mov dword [r15 + 0x294], 1
mov edi, 2
mov rsi, qword [rsp + 0xa0]
lea r11, [0x140000000]
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
mov r9, r15
mov r8, r12
mov rcx, r10
call fcn.140066d60
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
mov dword [r15], recv
lea r11, [0x140000000]
jmp case.default.0x1400659e3
cmp dword [r15 + 0x108], 0
jle 0x14006614a
nop
mov edx, dword [r15 + 0x10]
mov eax, r13d
sub eax, edx
cmp eax, 8
jae 0x140066132
nop
mov r8, qword [r15 + 0x20]
test r8, r8
je 0x140065c09
mov rcx, qword [r15 + 0x18]
add edx, 0xfffffff8
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [r8 - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, edx
mov dword [r15 + 0x10], edx
cmp eax, 8
jb 0x1400660f0
lea eax, [rdx + 8]
mov dword [r15 + 0x10], eax
dec dword [r15 + 0x108]
cmp dword [r15 + 0x108], 0
jg 0x1400660e0
mov rdx, qword [rsp + 0x38]
mov dword [r15], recv
jmp case.default.0x1400659e3
mov r8d, dword [r15 + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 6
jae 0x1400661b5
nop word [rax + rax]
mov rdx, qword [r15 + 0x20]
test rdx, rdx
je 0x140065c09
mov rcx, qword [r15 + 0x18]
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
add dword [r15 + 0x10], 0xfffffff8
mov r8d, dword [r15 + 0x10]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [rdx - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, r8d
cmp eax, 6
jb 0x140066170
mov rdx, qword [r15 + 8]
lea eax, [r8 + 6]
mov ecx, r8d
shr rdx, cl
and edx, dword [0x1406b3268]
mov dword [r15 + 0x10], eax
mov ecx, edx
and ecx, dword [reloc.WS2_32.dll_closesocket]
mov rax, qword [r15 + 0x28]
shr edx, 2
shl edx, cl
mov dword [r15 + 0x140], ecx
mov rcx, qword [r15 + 0x38]
mov dword [r15 + 0x144], edx
mov edx, dword [r15 + 0x11c]
call qword [0x14050ba78]
mov qword [r15 + 0x2b0], rax
test rax, rax
jne 0x140066227
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov edi, 0xffffffeb
jmp case.default.0x1400659e3
mov qword [r15], 6
lea r11, [0x140000000]
movsxd r9, dword [r15 + 4]
cmp r9d, dword [r15 + 0x11c]
jge 0x1400662da
mov r10, r9
nop dword [rax]
mov r8d, dword [r15 + 0x10]
mov eax, r13d
sub eax, r8d
cmp eax, 2
jae 0x1400662a4
nop
mov rdx, qword [r15 + 0x20]
test rdx, rdx
je 0x1400663f3
mov rcx, qword [r15 + 0x18]
add r8d, 0xfffffff8
shr qword [r15 + 8], 8
movzx eax, byte [rcx]
shl rax, 0x38
or qword [r15 + 8], rax
lea rax, [rdx - 1]
mov qword [r15 + 0x20], rax
lea rax, [rcx + 1]
mov qword [r15 + 0x18], rax
mov eax, r13d
sub eax, r8d
mov dword [r15 + 0x10], r8d
cmp eax, 2
jb 0x140066260
mov rdx, qword [r15 + 8]
lea eax, [r8 + 2]
mov ecx, r8d
inc r9d
shr rdx, cl
and edx, dword [reloc.WS2_32.dll_closesocket]
mov dword [r15 + 0x10], eax
mov rax, qword [r15 + 0x2b0]
mov byte [r10 + rax], dl
inc r10
cmp r9d, dword [r15 + 0x11c]
jl 0x140066250
mov dword [r15], reloc.WS2_32.dll_shutdown
mov ecx, dword [r15 + 0x11c]
lea rdx, [r15 + 0x2a4]
shl ecx, 6
mov r9, r15
mov r8, rbp
call fcn.140067140
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
xor r12d, r12d
mov qword [r15 + 0x2c8], r12
mov edi, r12d
mov qword [r15 + 0x2d0], r12
mov qword [r15 + 0x2d8], r12
mov qword [r15 + 0x2e0], r12
cmp dword [r15 + 0x11c], r12d
jbe 0x1400663ea
nop dword [rax + rax]
mov rax, qword [rbp]
mov rcx, rdi
shl rcx, 6
mov r11, r12
mov r10, r12
movzx r9d, byte [rcx + rax]
lea rsi, [rcx + rax]
lea r8, [rsi + 2]
nop
movzx edx, byte [rsi + r10]
add r10, 4
movzx ecx, byte [r8 - 1]
xor rdx, r9
movzx eax, byte [r8]
lea r8, [r8 + 4]
xor rcx, r9
or rdx, rcx
movzx ecx, byte [r8 - 3]
xor rcx, r9
or rdx, rcx
mov rcx, r9
xor rcx, rax
or rdx, rcx
or r11, rdx
cmp r10, r13
jb 0x140066370
test r11, r11
jne 0x1400663cf
mov rax, rdi
mov ecx, edi
shr rax, 5
and ecx, 0x1f
lea rdx, [r15 + rax*4]
mov eax, dword [rdx + 0x2c8]
bts eax, ecx
mov dword [rdx + 0x2c8], eax
mov eax, dword [r15 + 0x11c]
inc rdi
cmp rdi, rax
jb 0x140066350
mov rsi, qword [rsp + 0xa0]
mov dword [r15], 0x17
jmp 0x140066411
mov rdx, qword [rsp + 0x38]
mov edi, 2
mov r10, qword [rsp + 0xa8]
mov dword [r15 + 4], r9d
jmp case.default.0x1400659e3
xor r12d, r12d
mov r10d, dword [r15 + 0x140]
mov eax, 0x18
mov r8d, dword [r15 + 0x144]
lea ecx, [r10 + 1]
shl eax, cl
lea r14d, [r8 + 0x10]
add r14d, eax
test byte [r15 + 0x298], 0x20
mov ebp, r14d
je 0x1400664b7
cmp r8d, 0x7ffffffc
jb 0x14006644e
mov ebp, 0x8000000c
jmp 0x1400664a3
mov ecx, r10d
mov edx, 0x7ffffffc
sub edx, r8d
mov r9d, 1
shr edx, cl
mov eax, r12d
shl r9d, cl
add edx, 4
mov ecx, edx
dec r9d
shr ecx, 1
je 0x140066479
inc eax
shr ecx, 1
jne 0x140066473
lea ecx, [rax - 1]
shr edx, cl
lea eax, [rax*2 - 4]
and edx, 1
or edx, eax
jne 0x140066492
lea ebp, [r8 + 0x10]
jmp 0x1400664a3
lea ebp, [rdx - 1]
mov ecx, r10d
shl ebp, cl
or ebp, r9d
add ebp, 0x11
add ebp, r8d
lea ecx, [r10 + 1]
mov r14d, 0x3e
shl r14d, cl
add r14d, 0x10
add r14d, r8d
mov ecx, dword [r15 + 0x124]
lea r8, [r15 + 0x150]
shl ecx, 2
lea rdx, [r15 + 0x148]
mov r9, r15
call fcn.140067140
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne 0x140065910
mov eax, dword [r15 + 0x2a4]
lea rdx, [r15 + 0xa8]
mov r9d, 0x100
mov dword [rsp + 0x20], eax
mov r8d, r9d
mov rcx, r15
call fcn.140076dc0
mov ecx, dword [r15 + 0x120]
lea rdx, [r15 + 0xc0]
mov r9d, 0x2c0
mov dword [rsp + 0x20], ecx
mov r8d, r9d
mov rcx, r15
mov edi, eax
call fcn.140076dc0
mov ecx, dword [r15 + 0x148]
lea rdx, [r15 + 0xd8]
mov dword [rsp + 0x20], ecx
mov esi, eax
mov rcx, r15
mov r9d, ebp
mov r8d, r14d
and esi, edi
call fcn.140076dc0
and eax, esi
test al, 1
je 0x140066b80
mov qword [r15], 0x18
mov ecx, dword [r15 + 4]
test ecx, ecx
je 0x140066599
sub ecx, 1
je 0x140066591
cmp ecx, 1
jne 0x140066b8a
mov r12d, 0xd8
jmp 0x14006659f
mov r12d, 0xc0
jmp 0x14006659f
mov r12d, 0xa8
cmp dword [r15 + 0x2e8], 1
lea r14, [r15 + 0x9ec]
je 0x1400665ce
mov rax, qword [r12 + r15 + 8]
mov qword [r15 + 0x9f0], rax
mov dword [r14], 0
mov dword [r15 + 0x2e8], 1
movzx eax, word [r12 + r15 + 0x14]
cmp dword [r14], eax
jge 0x14006663c
nop dword [rax]
movzx edx, word [r12 + r15 + 0x12]
lea r9, [rsp + 0x30]
movzx ecx, word [r12 + r15 + 0x10]
mov r8, qword [r15 + 0x9f0]
mov qword [rsp + 0x20], r15
call fcn.140068fe0
mov edi, eax
cmp eax, 1
jne 0x14006676d
mov rcx, qword [r12 + r15]
mov rax, qword [r15 + 0x9f0]
movsxd rdx, dword [r14]
mov qword [rcx + rdx*8], rax
inc dword [r14]
mov eax, dword [rsp + 0x30]
shl rax, 2
add qword [r15 + 0x9f0], rax
movzx eax, word [r12 + r15 + 0x14]
cmp dword [r14], eax
jl 0x1400665e0
mov rsi, qword [rsp + 0xa0]
lea rbp, [r15 + 0x2a8]
mov r14, qword [rsp + 0x98]
lea r11, [0x140000000]
mov r12, qword [rsp + 0xb8]
mov edi, 1
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
mov dword [r15 + 0x2e8], 0
mov eax, dword [r15 + 4]
inc eax
mov dword [r15 + 4], eax
cmp eax, 3
jl case.default.0x1400659e3
mov dword [r15], 0x19
lea rbp, [r15 + 0x2a8]
mov ecx, dword [r15 + 0x12c]
mov r8d, ecx
mov eax, ecx
mov r9d, ecx
shr rax, 5
and ecx, 0x1f
shl r8d, 6
add r8, qword [rbp]
mov qword [r15 + 0x98], r8
mov edx, dword [r15 + rax*4 + 0x2c8]
mov rax, qword [r15 + 0xa8]
shr rdx, cl
and edx, 1
mov dword [r15 + 0x100], edx
movzx ecx, byte [r8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [r15 + 0x2b0]
mov qword [r15 + 0x158], rcx
movzx ecx, byte [rax + r9]
lea rax, [0x1406b3350]
and ecx, 3
shl rcx, 9
add rcx, rax
mov rax, qword [r15 + 0x150]
mov qword [r15 + 0xa0], rax
mov rax, qword [r15 + 0xc0]
mov qword [r15 + 0x90], rcx
mov rcx, qword [rax]
mov qword [r15 + 0x88], rcx
mov rcx, r15
call fcn.140066ca0
test eax, eax
jne 0x1400667a5
mov r14, qword [rsp + 0x98]
lea r11, [0x140000000]
mov r12, qword [rsp + 0xb8]
mov edi, 0xffffffe5
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
mov rsi, qword [rsp + 0xa0]
lea rbp, [r15 + 0x2a8]
mov r14, qword [rsp + 0x98]
lea r11, [0x140000000]
mov r12, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x38]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
mov r14d, dword [r15 + 0x140]
mov r11d, 1
mov esi, dword [r15 + 0x144]
mov ecx, r14d
movzx ebp, word [r15 + 0xea]
xor edi, edi
shl r11d, cl
mov r9d, 1
xor ecx, ecx
mov r8d, reloc.WS2_32.dll_recv
test esi, esi
je 0x1400667fc
nop dword [rax + rax]
mov eax, r8d
inc ecx
inc r8d
mov byte [rax + r15 + 0x2e8], dil
mov dword [r15 + rax*4 + 0x508], ecx
cmp ecx, esi
jb 0x1400667e0
cmp r8d, ebp
jae 0x14006685d
nop dword [rax]
nop word [rax + rax]
mov ecx, r9d
lea r10d, [rdi + 2]
shl r10d, cl
xor edx, edx
sub r10d, 4
mov ecx, r14d
shl r10d, cl
inc r10d
add r10d, esi
test r11d, r11d
je 0x140066852
mov ecx, r8d
lea eax, [r10 + rdx]
inc r8d
inc edx
mov byte [rcx + r15 + 0x2e8], r9b
mov dword [r15 + rcx*4 + 0x508], eax
cmp edx, r11d
jb 0x140066831
add r9d, edi
xor edi, 1
cmp r8d, ebp
jb 0x140066810
mov rsi, qword [rsp + 0xa0]
mov dword [r15], 7
mov rcx, r15
call fcn.140068440
mov r14, qword [rsp + 0x98]
mov edi, eax
mov r12, qword [rsp + 0xb8]
lea rbp, [r15 + 0x2a8]
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
cmp eax, 2
jne case.default.0x1400659e3
mov rcx, r15
call fcn.14006a390
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
lea rbp, [r15 + 0x2a8]
mov edi, eax
jmp case.default.0x1400659e3
mov r8, rdx
mov dword [rsp + 0x20], 0
mov rdx, r10
mov r9, r12
mov rcx, r15
call fcn.14006b260
mov rdx, qword [rsp + 0x38]
mov edi, eax
mov r10, qword [rsp + 0xa8]
lea r11, [0x140000000]
cmp eax, 1
jne case.default.0x1400659e3
mov rcx, r15
call fcn.14006b220
mov ecx, dword [r15 + 0x29c]
mov eax, 1
shl eax, cl
cmp dword [r15 + 0x58], eax
jne 0x140066930
mov eax, dword [r15 + 0x50]
mov dword [r15 + 0x54], eax
mov eax, dword [r15]
cmp eax, 0xf
jne 0x140066952
cmp dword [r15 + 0x108], 0
mov eax, recv
mov ecx, 7
cmovne eax, ecx
jmp 0x140065b09
cmp eax, 0x10
jne 0x140066961
mov eax, 0xa
jmp 0x140065b09
cmp dword [r15 + 4], 0
jne 0x140066982
cmp dword [r15 + 0x108], 0
mov eax, recv
mov ecx, 9
cmovne eax, ecx
jmp 0x140065b09
mov eax, 8
jmp 0x140065b09
cmp dword [r15 + 0x108], 0
jge 0x1400669a0
mov edi, 0xfffffff6
jmp case.default.0x1400659e3
mov rcx, r15
call fcn.140076f50
test byte [r15 + 0x298], 1
jne 0x1400669d2
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
mov dword [r15], 3
jmp case.default.0x1400659e3
mov r9d, dword [r15 + 0x10]
lea r11, [0x140000000]
mov r8d, r9d
mov ecx, 0
neg r8d
and r8d, 7
je 0x140066a09
mov rax, qword [r15 + 8]
mov ecx, r9d
shr rax, cl
mov ecx, dword [r11 + r8*4 + 0x6b3250]
and ecx, eax
add r9d, r8d
mov dword [r15 + 0x10], r9d
test ecx, ecx
je 0x140066a24
mov rdx, qword [rsp + 0x38]
mov edi, 0xfffffff1
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
cmp dword [r15 + 0x48], 0
jne 0x140066a73
mov r8, qword [r15 + 0x20]
mov eax, r13d
sub eax, r9d
shr eax, 3
mov ecx, eax
sub qword [r15 + 0x18], rcx
add r8, rcx
mov qword [r15 + 0x20], r8
lea edx, [rax*8]
cmp edx, r13d
jne 0x140066a5b
mov qword [r15 + 8], 0
jmp 0x140066a61
mov ecx, edx
shl qword [r15 + 8], cl
lea eax, [rdx + r9]
mov dword [r15 + 0x10], eax
mov qword [r14], r8
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
mov dword [r15], 0x1a
cmp qword [r15 + 0x78], 0
je 0x140066ac3
mov r8, qword [rsp + 0x38]
mov r9, r12
mov rdx, qword [rsp + 0xa8]
mov rcx, r15
mov dword [rsp + 0x20], 1
call fcn.14006b260
mov edi, eax
cmp eax, 1
je 0x140066ac3
mov rdx, qword [rsp + 0x38]
lea r11, [0x140000000]
mov r10, qword [rsp + 0xa8]
jmp case.default.0x1400659e3
mov edi, eax
mov edx, edi
mov rcx, r15
mov rbp, qword [rsp + 0x50]
mov r13, qword [rsp + 0x48]
add rsp, 0x58
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
jmp 0x14006b1f0
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
mov rax, qword [r15 + 0x20]
mov qword [r14], rax
test rax, rax
je 0x140066ac3
nop word [rax + rax]
mov rax, qword [rsi]
mov ecx, dword [r15 + 0x48]
movzx eax, byte [rax]
mov byte [rcx + r15 + 0x40], al
inc dword [r15 + 0x48]
inc qword [rsi]
sub qword [r14], 1
jne 0x140066b00
jmp 0x140066ac3
cmp dword [r15 + 0x48], 0
je 0x140066b2f
mov dword [r15 + 0x48], 0
jmp 0x140066ac3
mov r9, qword [r15 + 0x20]
mov r8d, dword [r15 + 0x10]
sub r13d, r8d
shr r13d, 3
mov ecx, r13d
sub qword [r15 + 0x18], rcx
add r9, rcx
mov qword [r15 + 0x20], r9
lea edx, [r13*8]
cmp edx, 0x40
jne 0x140066b63
mov qword [r15 + 8], 0
jmp 0x140066b69
mov ecx, edx
shl qword [r15 + 8], cl
lea eax, [r8 + rdx]
mov dword [r15 + 0x10], eax
mov qword [r14], r9
mov rax, qword [r15 + 0x18]
mov qword [rsi], rax
jmp 0x140066ac3
mov edx, 0xffffffea
jmp 0x140066ac5
mov edx, 0xffffffe1
jmp 0x140066ac5
mov dword [rcx + 0x74], edx
sub edx, 1
je 0x14006b211
sub edx, 1
je 0x14006b20b
cmp edx, 1
je 0x14006b205
xor eax, eax
ret
mov eax, 3
ret
mov eax, 2
ret
mov eax, 1
ret