Function at 0x140014ec0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xc8]
sub rsp, 0x1a0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x14087b200]
xor rax, rsp
mov qword [rbp + 0x48], rax
mov r13, rcx
mov qword [rbp - 0x40], rcx
xor r14d, r14d
lea ecx, [r14 + 8]
call fcn.1403a8780
lea rcx, [0x140013070]
mov qword [rax], rcx
mov qword [rbp + 0x40], rax
lea rcx, [rbp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r14d
mov r9, rax
lea r8, [0x14003df20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0x30], rax
test rax, rax
je 0x140016ce2
mov qword [rbp + 0x40], r14
cmp dword [rbp + 0x38], r14d
je 0x140016cd6
movaps xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp - 0x10], xmm0
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x140016cd6
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
movdqa xmmword [rbp + 0x30], xmm0
call fcn.140012bb0
movsx ebx, al
call fcn.140012bc0
movsx ecx, al
imul ebx, ecx
call fcn.140012bf0
movsx edi, al
lea eax, [rbx + rbx*2]
lea r12d, [rdi + rax*2]
movsd xmm6, qword [0x1406ab6e0]
movsd xmm7, qword [0x1406ab6d8]
movsd xmm8, qword [0x1406ab6d0]
movsd xmm9, qword [0x1406ab6c8]
movsd xmm10, qword [0x1406ab6e8]
lea r9d, [rdi + rbx*4]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015067
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015067
mov dword [rbp - 0x64], 0xa
jmp 0x1400150be
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400150be
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rbp - 0x64], eax
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rbp - 0x64]
test eax, eax
je 0x140016cc9
mov rax, qword [sym.imp.USER32.dll_MessageBoxA]
mov qword [rbp - 0x38], rax
mov rdx, qword [r13 + 8]
cmp rdx, qword [r13 + 0x10]
je 0x140015107
mov qword [rdx], rax
add qword [r13 + 8], 8
jmp 0x140015113
lea r8, [rbp - 0x38]
mov rcx, r13
call fcn.14003dc20
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x30], rax
mov rdx, qword [r13 + 8]
cmp rdx, qword [r13 + 0x10]
je 0x140015132
mov qword [rdx], rax
add qword [r13 + 8], 8
jmp 0x14001513e
lea r8, [rbp - 0x30]
mov rcx, r13
call fcn.14003dc20
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov qword [rbp - 0x28], rax
mov rdx, qword [r13 + 8]
cmp rdx, qword [r13 + 0x10]
je 0x14001515d
mov qword [rdx], rax
add qword [r13 + 8], 8
jmp 0x140015169
lea r8, [rbp - 0x28]
mov rcx, r13
call fcn.14003dc20
mov rcx, r13
call fcn.140025e70
lea edx, [rbx + rbx*4]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rdx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001541e
mov rcx, r13
call fcn.140017020
movzx eax, al
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015238
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015238
mov dword [rsp + 0x4c], 0xa
jmp 0x140015290
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015290
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
lea ecx, [rbx + rdi]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + rbx*4]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rsp + 0x4c]
test eax, eax
je 0x14001541e
mov r9d, r14d
lea r10d, [rbx + rdi]
mov r13d, dword [rbp - 0x58]
nop dword [rax + rax]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x58], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001537e
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14001537e
mov r13d, 0xa
jmp 0x1400153d2
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400153d2
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x58]
cvttsd2si r13d, xmm0
cmp r9d, r13d
jge 0x14001540e
mov eax, 1
mov qword [rbp - 0x50], rax
mov ecx, eax
nop dword [rax]
nop word [rax + rax]
mov qword [rbp + rcx*8 - 0x50], rax
mov rax, qword [rbp - 0x50]
add rax, 1
mov rcx, rax
mov qword [rbp - 0x50], rax
jne 0x1400153f0
inc r9d
jmp 0x1400152d0
mov dword [rbp - 0x58], r13d
mov byte [0], 0
mov r13, qword [rbp - 0x40]
mov rcx, r13
call fcn.14002a320
mov rcx, r13
call fcn.140036540
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016bb7
mov rcx, r13
call fcn.14003a110
movzx eax, al
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400154f0
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400154f0
mov dword [rsp + 0x50], 0xa
jmp 0x140015548
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015548
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
imul ecx, ebx, 7
movsx eax, byte [reloc.WS2_32.dll_htons]
add ecx, edi
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rsp + 0x50]
test eax, eax
je 0x140016bb7
lea rdx, [rbp - 0x20]
call fcn.140016d40
mov rsi, rax
cmp byte [rax], 0
jne 0x140015ff2
mov dword [rsp + 0x30], r14d
mov ecx, dword [rsp + 0x30]
cmp ecx, 1
jae 0x140015ff2
lea r14d, [rdi + rbx*8]
add r14d, ebx
call fcn.140012bd0
movsx r9d, al
call fcn.140012c00
movsx r10d, al
call fcn.140012be0
movsx r11d, al
mov r13d, dword [rsp + 0x40]
nop word [rax + rax]
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*2]
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400157c5
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001566c
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14001566c
mov r15d, 0xa
mov dword [rsp + 0x54], r15d
jmp 0x1400156cd
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400156c8
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si r15d, xmm0
mov dword [rsp + 0x54], r15d
jmp 0x1400156cd
mov r15d, dword [rsp + 0x54]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015743
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015743
mov dword [rsp + 0x58], 0xa
jmp 0x14001579b
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001579b
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x30]
mov r8d, dword [rsi + rax*4 + 4]
and r8d, dword [rsp + 0x58]
add r8d, r8d
movsxd rax, dword [rsp + 0x30]
mov edx, dword [rsi + rax*4 + 4]
sub edx, r8d
add edx, r15d
movsxd rax, dword [rsp + 0x30]
mov dword [rsi + rax*4 + 4], edx
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r14d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015deb
movsx edx, byte [0x14087fc71]
imul edx, r9d
shl edx, 3
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400159de
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015885
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015885
mov r15d, 0xa
mov dword [rsp + 0x5c], r15d
jmp 0x1400158e6
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400158e1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si r15d, xmm0
mov dword [rsp + 0x5c], r15d
jmp 0x1400158e6
mov r15d, dword [rsp + 0x5c]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001595c
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14001595c
mov dword [rsp + 0x60], 0xa
jmp 0x1400159b4
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400159b4
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x30]
mov r8d, dword [rsi + rax*4 + 4]
and r8d, dword [rsp + 0x60]
add r8d, r8d
movsxd rax, dword [rsp + 0x30]
mov edx, dword [rsi + rax*4 + 4]
sub edx, r8d
add edx, r15d
movsxd rax, dword [rsp + 0x30]
mov dword [rsi + rax*4 + 4], edx
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*8]
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015bd5
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015a7b
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015a7b
mov r15d, 0xa
mov dword [rsp + 0x64], r15d
jmp 0x140015adc
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015ad7
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si r15d, xmm0
mov dword [rsp + 0x64], r15d
jmp 0x140015adc
mov r15d, dword [rsp + 0x64]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015b53
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015b53
mov dword [rsp + 0x68], 0xa
jmp 0x140015bab
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015bab
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si eax, xmm0
mov dword [rsp + 0x68], eax
movsxd rax, dword [rsp + 0x30]
mov r8d, dword [rsi + rax*4 + 4]
and r8d, dword [rsp + 0x68]
add r8d, r8d
movsxd rax, dword [rsp + 0x30]
mov edx, dword [rsi + rax*4 + 4]
sub edx, r8d
add edx, r15d
movsxd rax, dword [rsp + 0x30]
mov dword [rsi + rax*4 + 4], edx
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rdi + rbx*4]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015deb
mov eax, dword [rsp + 0x30]
sub eax, 0x52
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015c83
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015c83
mov r15d, 0xa
mov dword [rsp + 0x6c], r15d
jmp 0x140015ce4
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015cdf
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si r15d, xmm0
mov dword [rsp + 0x6c], r15d
jmp 0x140015ce4
mov r15d, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x30]
sub eax, 0x52
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015d69
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015d69
mov dword [rsp + 0x70], 0xa
jmp 0x140015dc1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015dc1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x30]
mov r8d, dword [rsi + rax*4 + 4]
and r8d, dword [rsp + 0x70]
add r8d, r8d
movsxd rax, dword [rsp + 0x30]
mov edx, dword [rsi + rax*4 + 4]
sub edx, r8d
add edx, r15d
movsxd rax, dword [rsp + 0x30]
mov dword [rsi + rax*4 + 4], edx
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*4]
add edx, edx
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015fd3
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015e85
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015e85
mov r13d, 0xa
jmp 0x140015eda
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015eda
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si r13d, xmm0
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x40], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015f51
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140015f51
mov dword [rsp + 0x74], 0xa
jmp 0x140015fa9
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140015fa9
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x40]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsxd rax, dword [rsp + 0x30]
mov r8d, dword [rsi + rax*4 + 4]
and r8d, dword [rsp + 0x74]
add r8d, r8d
movsxd rax, dword [rsp + 0x30]
mov edx, dword [rsi + rax*4 + 4]
sub edx, r8d
add edx, r13d
movsxd rax, dword [rsp + 0x30]
mov dword [rsi + rax*4 + 4], edx
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cmp eax, 1
jb 0x1400155d0
mov dword [rsp + 0x40], r13d
xor r14d, r14d
mov byte [rsi], 1
mov eax, dword [rsi + 4]
lea rcx, reloc.WS2_32.dll_getpeername
mov r15, qword [rcx + rax*8]
mov qword [rbp - 0x60], r15
lea rdx, [rbp + 0x10]
call fcn.140016ea0
mov rsi, rax
cmp byte [rax], 0
jne 0x140016a50
mov dword [rsp + 0x30], r14d
mov ecx, dword [rsp + 0x30]
cmp ecx, 0x16
jae 0x140016a50
lea r14d, [rdi + rbx*8]
add r14d, ebx
call fcn.140012bd0
movsx r9d, al
call fcn.140012c00
movsx r10d, al
call fcn.140012be0
movsx r11d, al
mov r13d, dword [rsp + 0x38]
mov r15d, dword [rbp - 0x68]
nop dword [rax]
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*2]
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14001624e
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400160fa
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400160fa
mov dword [rsp + 0x7c], 0xa
jmp 0x140016152
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016152
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400161c9
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400161c9
mov dword [rsp + 0x78], 0xa
jmp 0x140016221
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016221
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x30]
movzx r8d, byte [rax + rsi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x30]
movzx edx, byte [rax + rsi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x30]
mov byte [rax + rsi + 1], dl
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r14d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001683f
movsx edx, byte [0x14087fc71]
imul edx, r9d
shl edx, 3
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140016455
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016309
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140016309
mov r15d, 0xa
jmp 0x14001635e
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001635e
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r15d, xmm0
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400163d3
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400163d3
mov dword [rbp - 0x80], 0xa
jmp 0x14001642a
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001642a
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x80], eax
movsxd rax, dword [rsp + 0x30]
movzx r8d, byte [rax + rsi + 1]
and r8b, byte [rbp - 0x80]
add r8b, r8b
movsxd rax, dword [rsp + 0x30]
movzx edx, byte [rax + rsi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x30]
mov byte [rax + rsi + 1], dl
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*8]
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140016638
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400164ec
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400164ec
mov r13d, 0xa
jmp 0x140016541
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016541
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r13d, xmm0
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400165b6
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400165b6
mov dword [rbp - 0x7c], 0xa
jmp 0x14001660d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001660d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x7c], eax
movsxd rax, dword [rsp + 0x30]
movzx r8d, byte [rax + rsi + 1]
and r8b, byte [rbp - 0x7c]
add r8b, r8b
movsxd rax, dword [rsp + 0x30]
movzx edx, byte [rax + rsi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x30]
mov byte [rax + rsi + 1], dl
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rdi + rbx*4]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14001683f
mov eax, dword [rsp + 0x30]
sub eax, 0x53
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400166e2
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400166e2
mov dword [rbp - 0x74], 0xa
jmp 0x140016739
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016739
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x74], eax
mov eax, dword [rsp + 0x30]
sub eax, 0x53
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400167bd
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400167bd
mov dword [rbp - 0x78], 0xa
jmp 0x140016814
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016814
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x78], eax
movsxd rax, dword [rsp + 0x30]
movzx r8d, byte [rax + rsi + 1]
and r8b, byte [rbp - 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x30]
movzx edx, byte [rax + rsi + 1]
sub dl, r8b
add dl, byte [rbp - 0x74]
movsxd rax, dword [rsp + 0x30]
mov byte [rax + rsi + 1], dl
movsx ecx, byte [0x14087fc71]
imul ecx, r9d
lea edx, [rcx + rcx*4]
add edx, edx
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140016a29
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400168da
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400168da
mov dword [rbp - 0x6c], 0xa
jmp 0x140016931
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016931
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x6c], eax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400169a7
movsx edx, byte [0x14087fc71]
imul edx, r9d
sub edx, r10d
add edx, r11d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x1400169a7
mov dword [rbp - 0x70], 0xa
jmp 0x1400169fe
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x1400169fe
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rbp - 0x70], eax
movsxd rax, dword [rsp + 0x30]
movzx r8d, byte [rax + rsi + 1]
and r8b, byte [rbp - 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x30]
movzx edx, byte [rax + rsi + 1]
sub dl, r8b
add dl, byte [rbp - 0x6c]
movsxd rax, dword [rsp + 0x30]
mov byte [rax + rsi + 1], dl
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cmp eax, 0x16
jb 0x140016060
mov dword [rbp - 0x68], r15d
mov dword [rsp + 0x38], r13d
mov r15, qword [rbp - 0x60]
xor r14d, r14d
mov byte [rsi], 1
lea rdx, [rsi + 1]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call r15
mov r9d, r14d
lea eax, [rbx + rbx*4]
lea r10d, [rdi + rax*2]
mov r13d, dword [rsp + 0x48]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x60], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016b1f
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x140016b1f
mov r13d, 0xa
jmp 0x140016b73
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016b73
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x60]
cvttsd2si r13d, xmm0
cmp r9d, r13d
jge 0x140016bae
mov eax, 1
mov qword [rbp - 0x48], rax
mov ecx, eax
nop dword [rax]
nop word [rax + rax]
mov qword [rbp + rcx*8 - 0x48], rax
mov rax, qword [rbp - 0x48]
add rax, 1
mov rcx, rax
mov qword [rbp - 0x48], rax
jne 0x140016b90
inc r9d
jmp 0x140016a71
mov dword [rsp + 0x48], r13d
mov r13, qword [rbp - 0x40]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
add eax, edi
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
lea r9d, [rdi + rbx*4]
je 0x140014fe1
mov rcx, r13
call fcn.140036a50
movzx eax, al
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x60], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016c73
call fcn.140012bd0
movsx edx, al
movsx eax, byte [0x14087fc71]
imul edx, eax
call fcn.140012c00
movsx ecx, al
sub edx, ecx
call fcn.140012be0
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
jne 0x140016caf
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, edi
lea eax, [rax + rbx*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x140016caf
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
movsd xmm0, qword [rbp - 0x60]
movzx eax, byte [reloc.WS2_32.dll_htons]
movzx eax, byte [reloc.WS2_32.dll_htonl]
movzx eax, byte [reloc.WS2_32.dll_accept]
jmp 0x140014fdd
cmp dword [rbp + 0x38], 0
je 0x140016cf2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 0x38], r14d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov rcx, qword [rbp + 0x48]
xor rcx, rsp
call fcn.1403a8760
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret