Function at 0x1400f76f0
Capabilities:
Send data
Send data on socket

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x240
lea rdi, [rsp + 0x30]
mov ecx, 0x84
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x250]
mov rax, qword [0x14021ab88]
xor rax, rsp
mov qword [rsp + 0x238], rax
mov dword [rsp + 0x7c], 0
mov dword [rsp + 0xa4], 0
mov eax, reloc.WS2_32.dll_recv
imul rax, rax, 0
lea rax, [rsp + rax + 0xc0]
mov qword [rsp + 0x168], rax
mov byte [rsp + 0x170], 0
xor eax, eax
test eax, eax
jne 0x1400f776b
cmp qword [rsp + 0x250], 0
je 0x1400f778c
mov rax, qword [rsp + 0x250]
cmp dword [rax], 0xbab1e
je 0x1400f7796
mov eax, 1
jmp 0x1400f82e9
mov rax, qword [rsp + 0x250]
movzx eax, byte [rax + 0x182]
test eax, eax
je 0x1400f77b3
mov eax, 8
jmp 0x1400f82e9
cmp dword [rsp + 0x268], 0
jge 0x1400f77c7
mov eax, 0xa
jmp 0x1400f82e9
mov rax, qword [rsp + 0x250]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x1400f78e8
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
call fcn.1400f75c0
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], 0
jmp 0x1400f780b
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 5
jae 0x1400f78d5
mov qword [rsp + 0x1c8], 0xffffffffffffffff
mov eax, dword [rsp + 0x78]
mov ecx, 1
mov dword [rsp + 0x220], ecx
movzx ecx, al
mov eax, dword [rsp + 0x220]
shl eax, cl
mov ecx, dword [rsp + 0x74]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x1400f7871
mov eax, dword [rsp + 0x78]
cmp qword [rsp + rax*8 + 0x48], 0xffffffffffffffff
jae 0x1400f7871
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x78]
mov rax, qword [rsp + rax*8 + 0x48]
mov qword [rsp + 0x1c8], rax
mov eax, dword [rsp + 0x78]
add eax, 0x10
mov ecx, 1
mov dword [rsp + 0x224], ecx
movzx ecx, al
mov eax, dword [rsp + 0x224]
shl eax, cl
mov ecx, dword [rsp + 0x74]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x1400f78c3
mov eax, dword [rsp + 0x78]
cmp qword [rsp + rax*8 + 0x48], 0xffffffffffffffff
jae 0x1400f78c3
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x78]
mov rax, qword [rsp + rax*8 + 0x48]
mov qword [rsp + 0x1c8], rax
cmp qword [rsp + 0x1c8], 0xffffffffffffffff
jne 0x1400f78d0
jmp 0x1400f78d5
jmp 0x1400f7801
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
jmp 0x1400f77d8
lea rdx, [rsp + 0x94]
mov rcx, qword [rsp + 0x250]
call fcn.1400f64a0
cmp dword [rsp + 0x94], 0
jl 0x1400f7925
mov eax, dword [rsp + 0x268]
cmp dword [rsp + 0x94], eax
jge 0x1400f7925
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x268], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x260]
mov ecx, dword [rsp + 0x7c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x7c], eax
movzx eax, byte [rsp + 0x280]
test eax, eax
je 0x1400f7959
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
cmp dword [rsp + 0x7c], 0xa
jbe 0x1400f7996
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, rax
call qword [fcn.140099ae0]
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x168], 0
jne 0x1400f798e
mov eax, 3
jmp 0x1400f82e9
mov byte [rsp + 0x170], 1
mov dword [rsp + 0x7c], 0
cmp dword [rsp + 0x80], 0
je 0x1400f7bcd
mov rax, qword [rsp + 0x250]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x1400f7bcd
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
call fcn.1400f75c0
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], 0
jmp 0x1400f79f0
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 5
jae 0x1400f7bba
mov qword [rsp + 0x1d0], 0xffffffffffffffff
mov dword [rsp + 0x1d8], 0
mov eax, dword [rsp + 0x78]
mov ecx, 1
mov dword [rsp + 0x228], ecx
movzx ecx, al
mov eax, dword [rsp + 0x228]
shl eax, cl
mov ecx, dword [rsp + 0x74]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x1400f7aa8
mov eax, dword [rsp + 0x78]
cmp qword [rsp + rax*8 + 0x48], 0xffffffffffffffff
jae 0x1400f7aa8
mov eax, dword [rsp + 0x78]
mov rax, qword [rsp + rax*8 + 0x48]
mov qword [rsp + 0x1d0], rax
mov eax, dword [rsp + 0x1d8]
or eax, 0x29
mov dword [rsp + 0x1d8], eax
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
mov rdx, qword [rsp + 0x1d0]
mov qword [rcx + rax], rdx
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov ecx, 0x300
mov rdx, qword [rsp + 0x168]
mov word [rdx + rax + 8], cx
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x78]
add eax, 0x10
mov ecx, 1
mov dword [rsp + 0x22c], ecx
movzx ecx, al
mov eax, dword [rsp + 0x22c]
shl eax, cl
mov ecx, dword [rsp + 0x74]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x1400f7b5b
mov eax, dword [rsp + 0x78]
cmp qword [rsp + rax*8 + 0x48], 0xffffffffffffffff
jae 0x1400f7b5b
mov eax, dword [rsp + 0x78]
mov rax, qword [rsp + rax*8 + 0x48]
mov qword [rsp + 0x1d0], rax
mov eax, dword [rsp + 0x1d8]
or eax, 0x32
mov dword [rsp + 0x1d8], eax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x1d0]
call qword [sym.imp.WS2_32.dll_send]
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
mov rdx, qword [rsp + 0x1d0]
mov qword [rcx + rax], rdx
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov ecx, reloc.WS2_32.dll_recv
mov rdx, qword [rsp + 0x168]
mov word [rdx + rax + 8], cx
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
cmp qword [rsp + 0x1d0], 0xffffffffffffffff
jne 0x1400f7b68
jmp 0x1400f7bba
mov r8d, dword [rsp + 0x1d8]
mov rax, qword [rsp + 0x250]
mov rdx, qword [rax + 0x178]
mov rcx, qword [rsp + 0x1d0]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
je 0x1400f7bb5
movzx eax, byte [rsp + 0x170]
test eax, eax
je 0x1400f7bab
mov rcx, qword [rsp + 0x168]
call qword [0x14020a040]
mov eax, 4
jmp 0x1400f82e9
jmp 0x1400f79e6
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
jmp 0x1400f79bd
mov dword [rsp + 0x78], 0
jmp 0x1400f7be1
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x260]
cmp dword [rsp + 0x78], eax
jae 0x1400f7e2b
mov dword [rsp + 0x1dc], 0
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 1
test eax, eax
je 0x1400f7c2a
mov eax, dword [rsp + 0x1dc]
or eax, 0x29
mov dword [rsp + 0x1dc], eax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 2
test eax, eax
je 0x1400f7c57
mov eax, dword [rsp + 0x1dc]
or eax, 4
mov dword [rsp + 0x1dc], eax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 4
test eax, eax
je 0x1400f7ca6
mov eax, dword [rsp + 0x1dc]
or eax, 0x32
mov dword [rsp + 0x1dc], eax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x258]
mov rcx, qword [rcx + rax]
call qword [sym.imp.WS2_32.dll_send]
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov r8d, dword [rsp + 0x1dc]
mov rcx, qword [rsp + 0x250]
mov rdx, qword [rcx + 0x178]
mov rcx, qword [rsp + 0x258]
mov rcx, qword [rcx + rax]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
je 0x1400f7cff
movzx eax, byte [rsp + 0x170]
test eax, eax
je 0x1400f7cf5
mov rcx, qword [rsp + 0x168]
call qword [0x14020a040]
mov eax, 4
jmp 0x1400f82e9
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov ecx, dword [rsp + 0x7c]
imul rcx, rcx, 0x10
mov rdx, qword [rsp + 0x168]
mov r8, qword [rsp + 0x258]
mov rax, qword [r8 + rax]
mov qword [rdx + rcx], rax
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
xor ecx, ecx
mov rdx, qword [rsp + 0x168]
mov word [rdx + rax + 8], cx
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 1
test eax, eax
je 0x1400f7d89
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
movsx eax, word [rcx + rax + 8]
or eax, 0x300
mov ecx, dword [rsp + 0x7c]
imul rcx, rcx, 0x10
mov rdx, qword [rsp + 0x168]
mov word [rdx + rcx + 8], ax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 2
test eax, eax
je 0x1400f7dd3
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
movsx eax, word [rcx + rax + 8]
bts eax, 0xa
mov ecx, dword [rsp + 0x7c]
imul rcx, rcx, 0x10
mov rdx, qword [rsp + 0x168]
mov word [rdx + rcx + 8], ax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movsx eax, word [rcx + rax + 8]
and eax, 4
test eax, eax
je 0x1400f7e1c
mov eax, dword [rsp + 0x7c]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
movsx eax, word [rcx + rax + 8]
or eax, 0x10
mov ecx, dword [rsp + 0x7c]
imul rcx, rcx, 0x10
mov rdx, qword [rsp + 0x168]
mov word [rdx + rcx + 8], ax
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
jmp 0x1400f7bd7
cmp dword [rsp + 0x7c], 0
jne 0x1400f7e42
movzx eax, byte [rsp + 0x280]
test eax, eax
je 0x1400f8214
cmp dword [rsp + 0x7c], 0
je 0x1400f7e66
xor r8d, r8d
mov edx, dword [rsp + 0x7c]
mov rcx, qword [rsp + 0x168]
call fcn.14009a0f3
mov dword [rsp + 0x1e0], eax
jmp 0x1400f7e71
mov dword [rsp + 0x1e0], 0
cmp dword [rsp + 0x1e0], 0
jge 0x1400f7e85
mov eax, listen
jmp 0x1400f82e9
cmp dword [rsp + 0x1e0], 0
jle 0x1400f7e9f
mov eax, dword [rsp + 0x1e0]
mov dword [rsp + 0xa4], eax
jmp 0x1400f7ece
mov rax, qword [rsp + 0x250]
add rax, 0x178
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x268]
xor r8d, r8d
mov rdx, rax
mov ecx, 1
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov dword [rsp + 0x78], 0
jmp 0x1400f7ee2
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x260]
cmp dword [rsp + 0x78], eax
jae 0x1400f80d4
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x80]
add ecx, eax
mov eax, ecx
mov eax, eax
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x168]
movsx eax, word [rcx + rax + 0xa]
mov dword [rsp + 0x1e4], eax
xor eax, eax
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
mov rax, qword [rcx + rax]
mov qword [rsp + 0x1f0], rax
mov dword [rsp + 0x188], 0
lea r8, [rsp + 0x188]
xor edx, edx
mov rcx, qword [rsp + 0x1f0]
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x1400f7fff
mov eax, dword [rsp + 0x188]
and eax, 0x29
test eax, eax
je 0x1400f7f8e
movzx eax, word [rsp + 0x1e8]
or eax, 1
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x188]
and eax, 0x32
test eax, eax
je 0x1400f7faf
movzx eax, word [rsp + 0x1e8]
or eax, 4
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x188]
and eax, 4
test eax, eax
je 0x1400f7fd0
movzx eax, word [rsp + 0x1e8]
or eax, 2
mov word [rsp + 0x1e8], ax
cmp qword [rsp + 0x270], 0
je 0x1400f7fff
cmp dword [rsp + 0x1e0], 0
jne 0x1400f7fff
cmp dword [rsp + 0x188], 0
je 0x1400f7fff
mov eax, dword [rsp + 0xa4]
inc eax
mov dword [rsp + 0xa4], eax
xor r8d, r8d
mov rax, qword [rsp + 0x250]
mov rdx, qword [rax + 0x178]
mov rcx, qword [rsp + 0x1f0]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp dword [rsp + 0x1e0], 0
jne 0x1400f804b
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movzx edx, word [rsp + 0x1e8]
mov word [rcx + rax + 0xa], dx
jmp 0x1400f7ed8
mov eax, dword [rsp + 0x1e4]
and eax, 0x300
test eax, eax
je 0x1400f806e
movzx eax, word [rsp + 0x1e8]
or eax, 1
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x1e4]
and eax, 0x10
test eax, eax
je 0x1400f808f
movzx eax, word [rsp + 0x1e8]
or eax, 4
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x1e4]
and eax, 0x400
test eax, eax
je 0x1400f80b2
movzx eax, word [rsp + 0x1e8]
or eax, 2
mov word [rsp + 0x1e8], ax
mov eax, dword [rsp + 0x78]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x258]
movzx edx, word [rsp + 0x1e8]
mov word [rcx + rax + 0xa], dx
jmp 0x1400f7ed8
cmp dword [rsp + 0x80], 0
je 0x1400f81ff
mov rax, qword [rsp + 0x250]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x1400f81ff
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
call fcn.1400f75c0
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], 0
jmp 0x1400f8126
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 5
jae 0x1400f81ec
mov eax, dword [rsp + 0x78]
mov ecx, 1
mov dword [rsp + 0x230], ecx
movzx ecx, al
mov eax, dword [rsp + 0x230]
shl eax, cl
mov ecx, dword [rsp + 0x78]
add ecx, 0x10
mov edx, 1
shl edx, cl
mov ecx, edx
or eax, ecx
mov ecx, dword [rsp + 0x74]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x1400f81e5
mov dword [rsp + 0x188], 0
mov eax, dword [rsp + 0x78]
lea r8, [rsp + 0x188]
xor edx, edx
mov rcx, qword [rsp + rax*8 + 0x48]
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x1400f81c2
cmp qword [rsp + 0x270], 0
je 0x1400f81c2
cmp dword [rsp + 0x1e0], 0
jne 0x1400f81c2
cmp dword [rsp + 0x188], 0
je 0x1400f81c2
mov eax, dword [rsp + 0xa4]
inc eax
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x78]
xor r8d, r8d
mov rcx, qword [rsp + 0x250]
mov rdx, qword [rcx + 0x178]
mov rcx, qword [rsp + rax*8 + 0x48]
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
jmp 0x1400f81e7
jmp 0x1400f81ec
jmp 0x1400f811c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
jmp 0x1400f80f3
mov rax, qword [rsp + 0x250]
mov rcx, qword [rax + 0x178]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
movzx eax, byte [rsp + 0x170]
test eax, eax
je 0x1400f822e
mov rcx, qword [rsp + 0x168]
call qword [0x14020a040]
cmp qword [rsp + 0x270], 0
je 0x1400f824a
mov rax, qword [rsp + 0x270]
mov ecx, dword [rsp + 0xa4]
mov dword [rax], ecx
movzx eax, byte [rsp + 0x278]
test eax, eax
je 0x1400f82e7
cmp dword [rsp + 0x7c], 0
jne 0x1400f82e7
movzx eax, byte [rsp + 0x280]
test eax, eax
jne 0x1400f82e7
mov dword [rsp + 0x204], 0
lea rdx, [rsp + 0x204]
mov rcx, qword [rsp + 0x250]
call fcn.14009a17f
test eax, eax
jne 0x1400f82e7
cmp dword [rsp + 0x204], 0
je 0x1400f82e7
mov eax, dword [rsp + 0x268]
cmp dword [rsp + 0x204], eax
jle 0x1400f82bf
mov eax, dword [rsp + 0x268]
mov dword [rsp + 0x204], eax
jmp 0x1400f82d7
cmp dword [rsp + 0x204], 0
jge 0x1400f82d7
mov eax, dword [rsp + 0x268]
mov dword [rsp + 0x204], eax
movsxd rax, dword [rsp + 0x204]
mov rcx, rax
call fcn.1400999f5
xor eax, eax
mov rdi, rax
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_getpeername
call fcn.14009a508
mov rax, rdi
mov rcx, qword [rsp + 0x238]
xor rcx, rsp
call fcn.1400995fe
add rsp, 0x240
pop rdi
ret