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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x78
mov r10, qword [rsp + 0xd8]
mov rdi, rdx
mov rdx, qword [rdx]
mov r12d, 1
mov qword [rsp + 0x40], rdx
mov r14, rcx
mov rcx, qword [rsp + 0xd0]
mov rax, r9
mov rsi, r8
mov ebp, r12d
test r10, r10
je 0x1401d080a
mov rax, qword [r14 + 0x1b0]
mov qword [r10], rax
mov rax, r9
cmp dword [r14 + 0x80], 0
jge 0x1401d0823
xor eax, eax
add rsp, 0x78
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rax]
test rax, rax
je 0x1401d0855
test rcx, rcx
je 0x1401d0836
cmp qword [rcx], 0
jne 0x1401d0855
sub rdx, qword [rdi]
mov rcx, r14
mov r8, rdx
mov edx, 0xffffffec
add rsp, 0x78
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1401d6530
xor r11d, r11d
mov qword [rsp + 0x70], r13
test rax, rax
mov qword [rsp + 0x68], r15
mov rax, qword [r14 + 0x50]
lea r15, [r14 + 0x28]
cmovne r11, rcx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r11
lea r9, [r14 + 0x20]
mov qword [rsp + 0xb0], r9
test rax, rax
jne 0x1401d08ca
mov rax, qword [rdi]
mov rcx, qword [r8]
mov qword [r14 + 0x18], rcx
test rax, rax
jne 0x1401d08aa
mov qword [r15], rcx
lea rdx, [0x140000000]
mov qword [r9], rcx
jmp 0x1401d091b
lea rdx, [rcx + rax]
inc rax
mov qword [r15], rdx
cmp rax, 0x1c
jbe 0x1401d0904
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
lea rdx, [0x140000000]
jmp 0x1401d091b
lea rcx, [r14 + 0x48]
mov ebp, 2
lea rdx, [rcx + rax]
mov qword [r14 + 0x18], rcx
inc rax
mov qword [r15], rdx
cmp rax, 0x1c
jbe 0x1401d08f7
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
lea rdx, [0x140000000]
jmp 0x1401d091b
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0x38], r15
mov qword [r9], rcx
lea rdx, [0x140000000]
jmp 0x1401d091b
mov r15, qword [rsp + 0x38]
mov r12d, 1
lea r13, [r14 + 0x310]
cmp ebp, 1
je 0x1401d0a1e
cmp ebp, 2
jne 0x1401d1b7e
cmp qword [r14 + 0x88], 0
je 0x1401d0976
mov rdx, qword [rsp + 0xc8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], r12d
mov rcx, r14
call fcn.1401d6730
test eax, eax
js 0x1401d1b16
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov rdx, qword [r14 + 0x50]
test rdx, rdx
je 0x1401d1b40
mov rax, qword [r15]
cmp qword [r14 + 0x18], rax
jne 0x1401d09c7
mov qword [r14 + 0x50], 0
mov ebp, r12d
mov rax, qword [rdi]
mov rcx, qword [rsi]
mov qword [r14 + 0x18], rcx
test rax, rax
jne 0x1401d09ae
mov qword [r15], rcx
mov qword [r9], rcx
jmp 0x1401d0a17
lea rdx, [rcx + rax]
inc rax
mov qword [r15], rdx
cmp rax, 0x1c
jbe 0x1401d09c2
lea rcx, [rdx - 0x1b]
mov qword [r9], rcx
jmp 0x1401d0a17
cmp qword [rdi], 0
je 0x1401d1b18
mov rax, qword [rsi]
lea r8, [r14 + 0x48]
mov ebp, r12d
movzx ecx, byte [rax]
mov rax, r8
mov byte [rdx + r14 + 0x48], cl
add qword [r14 + 0x50], 1
mov rdx, qword [r14 + 0x50]
mov qword [r14 + 0x18], r8
lea rcx, [r8 + rdx]
cmovne rax, rcx
add rcx, 0xffffffffffffffe5
mov qword [r15], rax
lea rax, [rdx + 1]
cmp rax, 0x1c
cmovbe rcx, r8
mov qword [r9], rcx
inc qword [rsi]
dec qword [rdi]
lea rdx, [0x140000000]
movsxd rax, dword [r14]
cmp eax, 0x1a
ja case.default.0x1401d0a34
mov ecx, dword [rdx + rax*4 + 0x1d1c08]
add rcx, rdx
jmp rcx
lea rcx, [r14 + 8]
call fcn.1401d6880
test eax, eax
jne 0x1401d0a4d
mov ebp, 2
jmp 0x1401d1af5
mov r9d, dword [r14 + 0x304]
mov eax, r9d
and eax, 0xffffffdf
mov dword [r14 + 0x304], eax
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov rcx, rdx
and rcx, qword [reloc.WS2_32.dll_accept]
dec r8
shr rdx, 1
mov qword [r14 + 0x10], r8
mov qword [r14 + 8], rdx
test rcx, rcx
jne 0x1401d0aa1
and dword [r14 + 0x304], 0xfffff43f
or dword [r14 + 0x304], 0x400
jmp 0x1401d0b6c
mov rcx, rdx
add r8, 0xfffffffffffffffd
and rcx, qword [reloc.WS2_32.dll_getsockopt]
shr rdx, 3
mov qword [r14 + 0x10], r8
mov qword [r14 + 8], rdx
test rcx, rcx
je 0x1401d0adc
mov eax, dword [r14 + 0x304]
add ecx, 0x11
shl ecx, 6
xor ecx, eax
and ecx, 0xfc0
xor ecx, eax
jmp 0x1401d0b65
mov rax, rdx
add r8, 0xfffffffffffffffd
and rax, qword [reloc.WS2_32.dll_getsockopt]
shr rdx, 3
mov qword [r14 + 0x10], r8
mov qword [r14 + 8], rdx
cmp rax, 1
jne 0x1401d0b35
test r9b, 0x20
je 0x1401d0b21
mov rcx, rdx
lea rax, [r8 - 1]
and rcx, qword [reloc.WS2_32.dll_accept]
shr rdx, 1
mov qword [r14 + 0x10], rax
mov qword [r14 + 8], rdx
cmp rcx, 1
jne 0x1401d0b2b
mov ebp, 0xfffffff3
jmp 0x1401d1af5
or dword [r14 + 0x304], 0x20
jmp 0x1401d0b6c
mov ecx, dword [r14 + 0x304]
test rax, rax
je 0x1401d0b59
add eax, 8
shl eax, 6
xor eax, ecx
and eax, 0xfc0
xor eax, ecx
mov dword [r14 + 0x304], eax
jmp 0x1401d0b6c
and ecx, 0xfffff47f
or ecx, 0x440
mov dword [r14 + 0x304], ecx
movzx eax, byte [r14 + 0x304]
mov ebp, r12d
and al, 0x20
neg al
sbb eax, eax
add eax, 2
mov dword [r14], eax
jmp 0x1401d1af5
mov r8, qword [r14 + 0x10]
cmp r8, 6
jae 0x1401d0bd8
mov r9, qword [r15]
nop word [rax + rax]
mov rdx, qword [r14 + 0x18]
cmp rdx, r9
je 0x1401d0c60
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r14 + 8], rax
lea rax, [rdx + 1]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x10], r8
cmp r8, 6
jb 0x1401d0ba0
mov r9, qword [rsp + 0xb0]
mov rcx, qword [r14 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140225210]
mov qword [r14 + 0x10], rax
mov eax, edx
shl eax, 6
and edx, 0x3f
mov qword [r14 + 8], rcx
sub edx, 0xa
mov ecx, dword [r14 + 0x304]
xor eax, ecx
and eax, 0xfc0
xor eax, ecx
mov dword [r14 + 0x304], eax
cmp edx, 0x14
ja 0x1401d0c79
mov dword [r14], 2
mov ecx, dword [r14 + 0x304]
mov eax, r12d
shr ecx, 6
mov edx, 0x3030
and ecx, 0x3f
shl eax, cl
mov rcx, qword [r14 + 0x40]
sub eax, 0x10
mov dword [r14 + 0x5c], eax
call qword [r14 + 0x30]
mov qword [r14 + 0x100], rax
test rax, rax
jne 0x1401d0c8a
mov ebp, 0xffffffe2
jmp 0x1401d1af5
mov r9, qword [rsp + 0xb0]
lea rdx, [0x140000000]
mov ebp, 2
jmp case.default.0x1401d0a34
mov ebp, 0xfffffff3
lea rdx, [0x140000000]
jmp case.default.0x1401d0a34
add rax, 0x1da0
mov dword [r14], 3
mov qword [r14 + 0x108], rax
mov rcx, r14
call fcn.1401d75d0
mov dword [r14], 4
lea rdx, [r14 + 8]
mov rcx, r14
call fcn.1401d2b40
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
lea r11, [r14 + 0x304]
test byte [r11], 6
je 0x1401d0d6b
mov rdx, qword [r14 + 0x10]
mov r8d, 0
mov rcx, rdx
and ecx, 7
je 0x1401d0d2c
mov rax, qword [r14 + 8]
lea r8, [0x140000000]
mov r8, qword [r8 + rcx*8 + 0x2251e0]
lea r9, [r14 + 0x304]
sub rdx, rcx
and r8, rax
shr rax, cl
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rdx
jmp 0x1401d0d2f
mov r9, r11
cmp rdx, 0x40
jae 0x1401d0d48
mov rcx, rdx
mov rax, r12
shl rax, cl
mov r11, r9
dec rax
and qword [r14 + 8], rax
test r8, r8
je 0x1401d0d6b
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov r9, qword [rsp + 0xb0]
mov ebp, 0xfffffff2
jmp case.default.0x1401d0a34
test byte [r11], 4
je 0x1401d0db1
mov rax, qword [r14 + 0x2d0]
lea rdx, [0x140000000]
mov r9, qword [rsp + 0xb0]
mov r11, qword [rsp + 0x30]
mov dword [r14], ntohs
test rax, rax
je case.default.0x1401d0a34
movsxd rdx, dword [r14 + 0x84]
mov rcx, qword [r14 + 0x2e0]
call rax
jmp 0x1401d1af5
cmp dword [r14 + 0x84], 0
jne 0x1401d0ddb
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
mov r9, qword [rsp + 0xb0]
mov dword [r14], ntohs
jmp case.default.0x1401d0a34
mov rcx, r14
call fcn.1401d0660
test byte [r11], 2
je 0x1401d0df5
mov dword [r14], ntohs
jmp 0x1401d1af5
mov r9, qword [rsp + 0xb0]
lea rdx, [0x140000000]
mov qword [r14], reloc.WS2_32.dll_select
lea rax, [r14 + 0x438]
mov qword [r14 + 0x410], rax
mov qword [r14 + 0x360], 0
mov qword [r14 + 0x354], 0
mov dword [r14 + 0x350], 0
movsxd rax, dword [r14 + 4]
cmp eax, 3
jl 0x1401d0e5c
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov dword [r14], 5
jmp case.default.0x1401d0a34
add rax, 0x27
lea rdx, [r14 + 8]
mov rcx, r14
lea r8, [r14 + rax*8]
call fcn.1401d30f0
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
movsxd rax, dword [r14 + 4]
inc qword [r14 + rax*8 + 0x138]
movsxd rcx, dword [r14 + 4]
cmp qword [r14 + rcx*8 + 0x138], 2
jae 0x1401d0ec5
lea eax, [rcx + 1]
mov dword [r14 + 4], eax
lea rdx, [0x140000000]
jmp case.default.0x1401d0a34
mov dword [r14], reloc.WS2_32.dll_send
movsxd rdx, dword [r14 + 4]
xor r9d, r9d
imul eax, edx, 0x278
mov qword [rsp + 0x20], r14
mov rcx, qword [r14 + rdx*8 + 0x138]
add rcx, 2
movsxd rdx, eax
mov rax, qword [r14 + 0x100]
lea r8, [rax + rdx*4]
mov rdx, rcx
call fcn.1401d3ff0
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
mov dword [r14], reloc.WS2_32.dll_sendto
imul eax, dword [r14 + 4], 0x18c
mov edx, 0x1a
xor r9d, r9d
mov qword [rsp + 0x20], r14
movsxd rcx, eax
mov rax, qword [r14 + 0x108]
lea r8, [rax + rcx*4]
mov ecx, edx
call fcn.1401d3ff0
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
mov dword [r14], reloc.WS2_32.dll_setsockopt
movsxd rdx, dword [r14 + 4]
imul eax, edx, 0x18c
cmp dword [r14 + 0x2fc], 0
lea rdi, [r14 + rdx*8]
movsxd rcx, eax
mov rax, qword [r14 + 0x108]
lea r11, [rax + rcx*4]
jne 0x1401d1078
mov r8, qword [r14 + 0x10]
cmp r8, 0xf
jae 0x1401d0ff0
mov r9, qword [r15]
nop dword [rax]
mov rdx, qword [r14 + 0x18]
cmp rdx, r9
je 0x1401d1058
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r14 + 8], rax
lea rax, [rdx + 1]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x10], r8
cmp r8, 0xf
jb 0x1401d0fc0
mov r10, qword [0x140225258]
and r10, qword [r14 + 8]
movzx eax, r10b
lea r9, [r11 + rax*4]
movzx eax, byte [r11 + rax*4]
cmp al, 8
jbe 0x1401d1043
shr qword [r14 + 8], 8
lea ecx, [rax - 8]
add r8, 0xfffffffffffffff8
shr r10, 8
mov qword [r14 + 0x10], r8
lea rax, [0x140000000]
mov rdx, qword [rax + rcx*8 + 0x2251e0]
movzx eax, word [r9 + 2]
and rdx, r10
add rdx, rax
movzx eax, byte [r9 + rdx*4]
lea r9, [r9 + rdx*4]
movzx ecx, al
sub r8, rcx
shr qword [r14 + 8], cl
mov qword [r14 + 0x10], r8
movzx r10d, word [r9 + 2]
jmp 0x1401d107f
lea r8, [rsp + 0x48]
mov rcx, r11
lea rdx, [r14 + 8]
call fcn.1401d53f0
test eax, eax
je 0x1401d113a
mov r10, qword [rsp + 0x48]
jmp 0x1401d1084
mov r10, qword [r14 + 0x130]
mov qword [rsp + 0x48], r10
mov rcx, qword [r14 + 0x10]
lea rax, [0x140000000]
movzx r9d, byte [rax + r10*4 + 0x22be42]
movzx r11d, word [rax + r10*4 + 0x22be40]
cmp rcx, r9
jae 0x1401d10df
mov r8, qword [r15]
nop dword [rax]
mov rdx, qword [r14 + 0x18]
cmp rdx, r8
je 0x1401d112c
movzx eax, byte [rdx]
shl rax, cl
add rcx, 8
or qword [r14 + 8], rax
lea rax, [rdx + 1]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x10], rcx
cmp rcx, r9
jb 0x1401d10b0
lea rax, [0x140000000]
mov rax, qword [rax + r9*8 + 0x2251e0]
sub rcx, r9
mov rdx, qword [r14 + 8]
mov qword [r14 + 0x10], rcx
and rax, rdx
add rax, r11
mov rcx, r9
shr rdx, cl
mov qword [r14 + 8], rdx
mov qword [rdi + 0x118], rax
inc dword [r14 + 4]
mov rdi, qword [rsp + 0xb8]
mov dword [r14 + 0x2fc], 0
mov dword [r14], reloc.WS2_32.dll_select
jmp 0x1401d1af5
mov qword [r14 + 0x130], r10
mov dword [r14 + 0x2fc], r12d
mov rdi, qword [rsp + 0xb8]
mov ebp, 2
jmp 0x1401d1af5
mov rcx, qword [rsp + 0xc8]
mov r9, r14
mov r8, r10
mov rdx, r11
call fcn.1401d1e30
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
mov dword [r14], ntohs
lea rdx, [0x140000000]
jmp case.default.0x1401d0a34
mov rcx, r14
call fcn.1401d6580
jmp 0x1401d1162
mov r8, qword [r14 + 0x10]
cmp r8, 6
jae 0x1401d11e3
mov r9, qword [r15]
mov rdx, qword [r14 + 0x18]
cmp rdx, r9
je 0x1401d0c60
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r14 + 8], rax
lea rax, [rdx + 1]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x10], r8
cmp r8, 6
jb 0x1401d11b3
mov rcx, qword [r14 + 8]
lea rax, [r8 - 6]
mov rdx, rcx
shr rcx, 6
and rdx, qword [0x140225210]
mov qword [r14 + 8], rcx
mov rcx, rdx
mov qword [r14 + 0x10], rax
and rcx, qword [reloc.WS2_32.dll_closesocket]
shr rdx, 2
shl rdx, cl
mov qword [r14 + 0x180], rcx
mov rcx, qword [r14 + 0x40]
mov qword [r14 + 0x188], rdx
mov rdx, qword [r14 + 0x138]
call qword [r14 + 0x30]
mov qword [r14 + 0x318], rax
test rax, rax
jne 0x1401d1245
mov ebp, 0xffffffeb
jmp 0x1401d1af5
mov qword [r14], 6
movsxd r10, dword [r14 + 4]
cmp r10d, dword [r14 + 0x138]
jge 0x1401d12d8
mov r11, r10
nop dword [rax]
mov r8, qword [r14 + 0x10]
cmp r8, 2
jae 0x1401d12a0
mov r9, qword [r14 + 0x28]
nop
mov rdx, qword [r14 + 0x18]
cmp rdx, r9
je 0x1401d13ed
movzx eax, byte [rdx]
mov rcx, r8
shl rax, cl
add r8, 8
or qword [r14 + 8], rax
lea rax, [rdx + 1]
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x10], r8
cmp r8, 2
jb 0x1401d1270
mov rcx, qword [r14 + 8]
lea rax, [r8 - 2]
mov rdx, rcx
inc r10d
and rdx, qword [reloc.WS2_32.dll_closesocket]
mov qword [r14 + 0x10], rax
shr rcx, 2
mov qword [r14 + 8], rcx
mov rax, qword [r14 + 0x318]
mov byte [r11 + rax], dl
inc r11
cmp r10d, dword [r14 + 0x138]
jl 0x1401d1260
mov dword [r14], socket
mov rcx, qword [r14 + 0x138]
lea rdx, [r14 + 0x308]
shl rcx, 6
mov r9, r14
mov r8, r13
call fcn.1401d2210
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
xor ebp, ebp
mov qword [r14 + 0x330], rbp
mov edi, ebp
mov qword [r14 + 0x338], rbp
mov qword [r14 + 0x340], rbp
mov qword [r14 + 0x348], rbp
cmp qword [r14 + 0x138], rbp
jbe 0x1401d13dc
mov rax, qword [r13]
mov rcx, rdi
shl rcx, 6
mov r10, rbp
mov r11d, reloc.WS2_32.dll_recv
lea r8, [rax + 2]
movzx r9d, byte [rcx + rax]
add r8, rcx
movzx edx, byte [r8 - 2]
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 r10, rdx
sub r11, 1
jne 0x1401d1370
test r10, r10
jne 0x1401d13cc
mov rax, rdi
mov ecx, edi
shr rax, 5
and ecx, 0x1f
lea rdx, [r14 + rax*4]
mov eax, dword [rdx + 0x330]
bts eax, ecx
mov dword [rdx + 0x330], eax
inc rdi
cmp rdi, qword [r14 + 0x138]
jb 0x1401d1350
mov rdi, qword [rsp + 0xb8]
mov dword [r14], reloc.WS2_32.dll_socket
jmp 0x1401d13fd
mov dword [r14 + 4], r10d
mov ebp, 2
jmp 0x1401d1af5
xor ebp, ebp
mov r10, qword [r14 + 0x180]
mov eax, 0x18
mov r8, qword [r14 + 0x188]
lea ecx, [r10 + 1]
shl eax, cl
lea r15, [r8 + 0x10]
add r15, rax
test byte [r14 + 0x304], 0x20
mov r13, r15
je 0x1401d14a6
cmp r8d, 0x7ffffffc
jb 0x1401d143a
mov edx, 0x8000000c
jmp 0x1401d148f
mov ecx, r10d
mov edx, 0x7ffffffc
sub edx, r8d
mov r9d, r12d
shr edx, cl
mov eax, ebp
shl r9d, cl
add edx, 4
mov ecx, edx
dec r9d
shr ecx, 1
je 0x1401d1466
nop dword [rax + rax]
inc eax
shr ecx, 1
jne 0x1401d1460
lea ecx, [rax - 1]
shr edx, cl
lea eax, [rax*2 - 4]
and edx, 1
or edx, eax
jne 0x1401d147f
lea edx, [r8 + 0x10]
jmp 0x1401d148f
dec edx
mov ecx, r10d
shl edx, cl
or edx, r9d
add edx, 0x11
add edx, r8d
mov r15d, 0x3e
mov r13d, edx
lea ecx, [r10 + 1]
shl r15d, cl
add r15, 0x10
add r15, r8
mov rcx, qword [r14 + 0x148]
lea r8, [r14 + 0x198]
shl rcx, 2
lea rdx, [r14 + 0x190]
mov r9, r14
call fcn.1401d2210
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne 0x1401d0910
mov rax, qword [r14 + 0x308]
lea rdx, [r14 + 0xb8]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
mov r8d, r9d
mov rcx, r14
call fcn.1401d7220
mov rcx, qword [r14 + 0x140]
lea rdx, [r14 + 0xd0]
mov r9d, 0x2c0
mov qword [rsp + 0x20], rcx
mov rcx, r14
mov r8d, r9d
mov edi, eax
call fcn.1401d7220
mov rcx, qword [r14 + 0x190]
lea rdx, [r14 + 0xe8]
mov qword [rsp + 0x20], rcx
mov esi, eax
mov rcx, r14
mov r9, r13
mov r8, r15
and esi, edi
call fcn.1401d7220
and eax, esi
test al, 1
je 0x1401d1be4
mov rdi, qword [rsp + 0xb8]
mov qword [r14], 0x18
mov ecx, dword [r14 + 4]
test ecx, ecx
je 0x1401d159c
sub ecx, 1
je 0x1401d1594
cmp ecx, 1
jne 0x1401d1bfe
mov r15d, 0xe8
jmp 0x1401d15a2
mov r15d, 0xd0
jmp 0x1401d15a2
mov r15d, 0xb8
mov r12d, 1
lea rsi, [r14 + 0xa6c]
cmp dword [r14 + 0x350], r12d
je 0x1401d15d1
mov rax, qword [r15 + r14 + 8]
mov qword [r14 + 0xa70], rax
mov dword [rsi], 0
mov dword [r14 + 0x350], r12d
movzx eax, word [r15 + r14 + 0x14]
cmp dword [rsi], eax
jge 0x1401d163f
nop dword [rax + rax]
movzx edx, word [r15 + r14 + 0x12]
lea r9, [rsp + 0x50]
movzx ecx, word [r15 + r14 + 0x10]
mov r8, qword [r14 + 0xa70]
mov qword [rsp + 0x20], r14
call fcn.1401d3ff0
mov ebp, eax
cmp eax, 1
jne 0x1401d1756
mov rcx, qword [r15 + r14]
mov rax, qword [r14 + 0xa70]
movsxd rdx, dword [rsi]
mov qword [rcx + rdx*8], rax
inc dword [rsi]
mov rax, qword [rsp + 0x50]
lea rax, [rax*4]
add qword [r14 + 0xa70], rax
movzx eax, word [r15 + r14 + 0x14]
cmp dword [rsi], eax
jl 0x1401d15e0
mov rdi, qword [rsp + 0xb8]
lea r13, [r14 + 0x310]
mov rsi, qword [rsp + 0xc0]
lea rdx, [0x140000000]
mov r15, qword [rsp + 0x38]
mov ebp, r12d
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
mov dword [r14 + 0x350], 0
mov eax, dword [r14 + 4]
inc eax
mov dword [r14 + 4], eax
cmp eax, 3
jl case.default.0x1401d0a34
mov dword [r14], 0x19
lea r13, [r14 + 0x310]
mov r9, qword [r14 + 0x158]
movzx ecx, r9b
mov r8, r9
and cl, 0x1f
shl r8, 6
add r8, qword [r13]
mov rax, r9
shr rax, 5
mov qword [r14 + 0xa8], r8
mov edx, dword [r14 + rax*4 + 0x330]
mov rax, qword [r14 + 0xb8]
shr rdx, cl
and edx, 1
mov dword [r14 + 0x110], edx
movzx ecx, byte [r8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [r14 + 0x318]
mov qword [r14 + 0x1a0], rcx
movzx ecx, byte [rax + r9]
lea rax, [0x14022beb0]
and ecx, 3
shl rcx, 9
add rcx, rax
mov rax, qword [r14 + 0x198]
mov qword [r14 + 0xb0], rax
mov rax, qword [r14 + 0xd0]
mov qword [r14 + 0xa0], rcx
mov rcx, qword [rax]
mov qword [r14 + 0x98], rcx
mov rcx, r14
call fcn.1401d1c80
test eax, eax
jne 0x1401d1777
mov r15, qword [rsp + 0x38]
mov ebp, 0xffffffe5
jmp 0x1401d1af5
mov rdi, qword [rsp + 0xb8]
lea r13, [r14 + 0x310]
mov rsi, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x38]
jmp 0x1401d1af5
mov r12, qword [r14 + 0x180]
lea r11, [r14 + 0x350]
mov r13, qword [r14 + 0x188]
mov r9d, 1
movzx r15d, word [r14 + 0xfa]
mov rcx, r12
mov edi, r9d
xor ebp, ebp
shl edi, cl
mov r8d, reloc.WS2_32.dll_recv
test r13, r13
je 0x1401d17e7
mov rsi, 0xfffffffffffffff1
lea rcx, [r11 + 0x10]
sub rsi, r11
lea rdx, [r11 + 0x2a0]
mov r10, r13
lea r8, [r13 + 0x10]
nop dword [rax + rax]
mov byte [rcx], bpl
lea rax, [rsi + rcx]
mov qword [rdx], rax
lea rdx, [rdx + 8]
lea rcx, [rcx + 1]
sub r10, r9
jne 0x1401d17d0
cmp r8, r15
jae 0x1401d1846
nop dword [rax]
mov rcx, r9
lea r10, [rbp + 2]
shl r10, cl
mov rcx, r12
sub r10, 4
shl r10, cl
xor ecx, ecx
inc r10
add r10, r13
test rdi, rdi
je 0x1401d183a
lea rdx, [r11 + 0x220]
lea rdx, [rdx + r8*8]
nop dword [rax]
mov byte [r11 + r8], r9b
lea rax, [r10 + rcx]
inc r8
mov qword [rdx], rax
inc rcx
lea rdx, [rdx + 8]
cmp rcx, rdi
jb 0x1401d1820
add r9, rbp
xor rbp, 1
cmp r8, r15
jb 0x1401d17f0
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xc0]
mov dword [r14], 7
mov rcx, r14
call fcn.1401d34b0
mov r15, qword [rsp + 0x38]
mov ebp, eax
mov r9, qword [rsp + 0xb0]
mov r12d, 1
mov r10, qword [rsp + 0xd8]
lea r13, [r14 + 0x310]
mov r11, qword [rsp + 0x30]
lea rdx, [0x140000000]
cmp eax, 2
jne case.default.0x1401d0a34
mov rcx, r14
call fcn.1401d5490
mov ebp, eax
lea r13, [r14 + 0x310]
jmp 0x1401d1af5
mov rdx, qword [rsp + 0xc8]
mov r9, r10
mov r8, r11
mov dword [rsp + 0x20], 0
mov rcx, r14
call fcn.1401d6730
mov r9, qword [rsp + 0xb0]
mov ebp, eax
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
cmp eax, 1
jne case.default.0x1401d0a34
mov rcx, r14
call fcn.1401d66f0
mov ecx, dword [r14 + 0x304]
mov eax, r12d
shr ecx, 6
and ecx, 0x3f
shl eax, cl
cmp dword [r14 + 0x64], eax
jne 0x1401d1921
mov eax, dword [r14 + 0x5c]
mov dword [r14 + 0x60], eax
mov eax, dword [r14]
cmp eax, 0xf
jne 0x1401d1994
mov rcx, qword [r14 + 0x328]
test rcx, rcx
je 0x1401d1977
mov eax, dword [rcx + 0x14]
cmp dword [rcx + 0x10], eax
je 0x1401d1977
mov edx, dword [r14 + 0x58]
mov rcx, r14
call fcn.1401d1d50
add dword [r14 + 0x58], eax
lea rdx, [0x140000000]
mov eax, dword [r14 + 0x58]
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0x30]
cmp eax, dword [r14 + 0x64]
jge case.default.0x1401d0a34
cmp dword [r14 + 0x84], 0
mov eax, ntohs
mov ecx, 7
cmovne eax, ecx
mov dword [r14], eax
jmp 0x1401d1af5
cmp eax, 0x10
jne 0x1401d19a6
mov eax, 0xa
mov dword [r14], eax
jmp 0x1401d1af5
cmp dword [r14 + 4], 0
jne 0x1401d19ca
cmp dword [r14 + 0x84], 0
mov eax, ntohs
mov ecx, 9
cmovne eax, ecx
mov dword [r14], eax
jmp 0x1401d1af5
mov eax, 8
mov dword [r14], eax
jmp 0x1401d1af5
cmp dword [r14 + 0x84], 0
jge 0x1401d19eb
mov ebp, 0xfffffff6
jmp case.default.0x1401d0a34
mov rcx, r14
call fcn.1401d7390
test byte [r14 + 0x304], 1
jne 0x1401d1a09
mov dword [r14], 3
jmp 0x1401d1af5
mov r9, qword [r14 + 0x10]
mov edx, 0
mov rcx, r9
and ecx, 7
je 0x1401d1a3e
mov rax, qword [r14 + 8]
lea r8, [0x140000000]
mov rdx, qword [r8 + rcx*8 + 0x2251e0]
sub r9, rcx
and rdx, rax
mov qword [r14 + 0x10], r9
shr rax, cl
mov qword [r14 + 8], rax
cmp r9, 0x40
jae 0x1401d1a54
mov rcx, r9
mov rax, r12
shl rax, cl
dec rax
and qword [r14 + 8], rax
test rdx, rdx
je 0x1401d1a63
mov ebp, 0xfffffff1
jmp 0x1401d1af5
cmp qword [r14 + 0x50], 0
jne 0x1401d1abb
mov r10, qword [r14 + 0x18]
mov rdx, r9
shr rdx, 3
mov rax, r10
sub rax, rdx
test rdx, rdx
cmovne r10, rax
lea r8, [rdx*8]
sub r9, r8
mov qword [r14 + 0x18], r10
mov qword [r14 + 0x10], r9
cmp r9, 0x40
jae 0x1401d1aab
mov rcx, r9
mov rax, r12
shl rax, cl
dec rax
and qword [r14 + 8], rax
mov rax, qword [r15]
sub rax, r10
mov qword [rdi], rax
mov rax, qword [r14 + 0x18]
mov qword [rsi], rax
mov dword [r14], 0x1a
cmp qword [r14 + 0x88], 0
je 0x1401d1b18
mov r9, qword [rsp + 0xd8]
mov rcx, r14
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xc8]
mov dword [rsp + 0x20], r12d
call fcn.1401d6730
mov ebp, eax
cmp eax, 1
je 0x1401d1b18
mov r10, qword [rsp + 0xd8]
lea rdx, [0x140000000]
mov r11, qword [rsp + 0x30]
mov r9, qword [rsp + 0xb0]
jmp case.default.0x1401d0a34
mov ebp, eax
mov edx, ebp
mov r8, qword [rsp + 0x40]
sub r8, qword [rdi]
mov rcx, r14
mov r13, qword [rsp + 0x70]
mov r15, qword [rsp + 0x68]
add rsp, 0x78
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp 0x1401d6530
mov rax, qword [r14 + 0x18]
mov qword [rsi], rax
mov rax, qword [r15]
sub rax, qword [r14 + 0x18]
mov qword [rdi], rax
je 0x1401d1b18
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi]
mov rcx, qword [r14 + 0x50]
movzx eax, byte [rax]
mov byte [rcx + r14 + 0x48], al
inc qword [r14 + 0x50]
inc qword [rsi]
sub qword [rdi], 1
jne 0x1401d1b60
jmp 0x1401d1b18
cmp qword [r14 + 0x50], 0
je 0x1401d1b8f
mov qword [r14 + 0x50], 0
jmp 0x1401d1b18
mov rcx, qword [r14 + 0x10]
mov r9, qword [r14 + 0x18]
mov rdx, rcx
shr rdx, 3
mov rax, r9
sub rax, rdx
test rdx, rdx
cmovne r9, rax
lea r8, [rdx*8]
sub rcx, r8
mov qword [r14 + 0x18], r9
mov qword [r14 + 0x10], rcx
cmp rcx, 0x40
jae 0x1401d1bce
shl r12, cl
dec r12
and qword [r14 + 8], r12
mov rax, qword [r14 + 0x28]
sub rax, r9
mov qword [rdi], rax
mov rax, qword [r14 + 0x18]
mov qword [rsi], rax
jmp 0x1401d1b18
mov rax, qword [rsp + 0xb8]
mov edx, 0xffffffea
mov r8, qword [rsp + 0x40]
sub r8, qword [rax]
jmp 0x1401d1b22
mov edx, 0xffffffe1
jmp 0x1401d1b1a
add qword [rcx + 0x2e8], r8
cmp qword [rcx + 0x50], 0
mov dword [rcx + 0x80], edx
je 0x1401d6556
mov rax, qword [rcx + 0x28]
cmp qword [rcx + 0x18], rax
jne 0x1401d6556
mov qword [rcx + 0x50], 0
sub edx, 1
je 0x1401d6574
sub edx, 1
je 0x1401d656e
cmp edx, 1
je 0x1401d6568
xor eax, eax
ret
mov eax, 3
ret
mov eax, 2
ret
mov eax, 1
ret