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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov rax, qword [0x14013aa80]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov ebx, 1
test rcx, rcx
je 0x140082c59
mov r13, rcx
cmp dword [rcx], 0xbab1e
jne 0x140082c59
mov ebx, 8
cmp byte [r13 + 0x1b3], 0
je 0x140082c7f
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1400d2000
mov eax, ebx
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, r9d
test r9d, r9d
js 0x140082eb0
mov rdi, rdx
mov qword [rsp + 0x50], r8
mov rbx, qword [r13 + 8]
xor r12d, r12d
mov r14d, 0
test rbx, rbx
je 0x140082e6c
xor r14d, r14d
lea r15, [rsp + 0x140]
jmp 0x140082cd0
mov r14d, ecx
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140082e6c
mov esi, r14d
mov rcx, rbx
mov rdx, r15
call fcn.140082b70
mov ecx, eax
and ecx, 1
mov rdx, qword [rsp + 0x140]
xor r14d, r14d
cmp rdx, 0xffffffffffffffff
setne r14b
add r14d, esi
test ecx, ecx
cmove r14d, esi
cmp ecx, 1
mov ecx, 0
sbb rcx, rcx
or rcx, rdx
test eax, 0x10000
je 0x140082d2e
mov rdx, qword [rsp + 0x140]
xor r8d, r8d
cmp rdx, 0xffffffffffffffff
setne r8b
cmovne rcx, rdx
add r14d, r8d
cmp rcx, 0xffffffffffffffff
je 0x140082cc3
mov edx, eax
and edx, 2
mov r8, qword [rsp + 0x148]
xor ecx, ecx
cmp r8, 0xffffffffffffffff
setne cl
add ecx, r14d
test edx, edx
cmove ecx, r14d
cmp edx, 1
mov edx, 0
sbb rdx, rdx
or rdx, r8
test eax, 0x20000
je 0x140082d82
mov r8, qword [rsp + 0x148]
xor r9d, r9d
cmp r8, 0xffffffffffffffff
setne r9b
cmovne rdx, r8
add ecx, r9d
cmp rdx, 0xffffffffffffffff
je 0x140082cc0
mov edx, eax
and edx, 4
mov r8, qword [rsp + 0x150]
xor r14d, r14d
cmp r8, 0xffffffffffffffff
setne r14b
add r14d, ecx
test edx, edx
cmove r14d, ecx
cmp edx, 1
mov ecx, 0
sbb rcx, rcx
or rcx, r8
test eax, 0x40000
je 0x140082ddc
mov rdx, qword [rsp + 0x150]
xor r8d, r8d
cmp rdx, 0xffffffffffffffff
setne r8b
cmovne rcx, rdx
add r14d, r8d
cmp rcx, 0xffffffffffffffff
je 0x140082cc3
mov edx, eax
and edx, 8
mov r8, qword [rsp + 0x158]
xor ecx, ecx
cmp r8, 0xffffffffffffffff
setne cl
add ecx, r14d
test edx, edx
cmove ecx, r14d
cmp edx, 1
mov edx, 0
sbb rdx, rdx
or rdx, r8
test eax, 0x80000
je 0x140082e34
mov r8, qword [rsp + 0x158]
xor r9d, r9d
cmp r8, 0xffffffffffffffff
setne r9b
cmovne rdx, r8
add ecx, r9d
cmp rdx, 0xffffffffffffffff
je 0x140082e64
xor r14d, r14d
cmp qword [rsp + 0x160], 0xffffffffffffffff
setne r14b
lea edx, [rcx + r14]
test al, 0x10
cmove edx, ecx
add r14d, edx
test eax, 0x100000
cmove r14d, edx
jmp 0x140082cc3
mov r14d, ecx
jmp 0x140082cc3
cmp byte [r13 + 0x1b4], 0
mov r15, qword [rsp + 0x50]
je 0x140083176
cmp r12d, ebp
mov esi, ebp
cmovl esi, r12d
test r12d, r12d
cmovs esi, ebp
movzx ebx, byte [rsp + 0x1f0]
add ebx, r15d
add ebx, r14d
cmp ebx, 0xb
jae 0x140082eba
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
jmp 0x140082ed4
mov ebx, 0xa
jmp 0x140082c59
mov ecx, ebx
shl rcx, 4
call qword [str.0__r_]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14008325d
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x5c], esi
xor r15d, r15d
test r14d, r14d
je 0x14008304d
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x14008304d
xor r15d, r15d
lea rdx, [rsp + 0x140]
mov rsi, r13
mov qword [rsp + 0x48], rcx
call fcn.140082b70
mov ebx, eax
xor ebp, ebp
nop word cs:[rax + rax]
xor r13d, r13d
bt ebx, ebp
jae 0x140082f60
mov rax, qword [rsp + rbp*8 + 0x140]
cmp rax, 0xffffffffffffffff
je 0x140082f60
mov ecx, r15d
shl rcx, 4
mov rdx, qword [rsp + 0x30]
mov qword [rdx + rcx], rax
mov word [rdx + rcx + 8], 0x300
inc r15d
mov r13d, 0x29
jmp 0x140082f67
mov rax, 0xffffffffffffffff
mov edx, ebx
mov ecx, ebp
shr edx, cl
test edx, 0x10000
je 0x140082ff0
mov r12, qword [rsp + rbp*8 + 0x140]
cmp r12, 0xffffffffffffffff
je 0x140082ff0
mov dword [rsp + 0x60], 4
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov edx, 0xffff
mov r8d, 0x1008
lea r9, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x140082fca
cmp dword [rsp + 0x70], 1
jne 0x140082fca
mov rcx, r12
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
or r13d, 0x32
mov eax, r15d
shl rax, 4
mov rcx, qword [rsp + 0x30]
mov qword [rcx + rax], r12
mov word [rcx + rax + 8], reloc.WS2_32.dll_recv
inc r15d
jmp 0x140082ff9
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x140083030
mov rdx, qword [rsi + 0x1a8]
mov rcx, r12
mov r8d, r13d
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp dword [rsp + 0x44], 0xb
jb 0x14008301b
test eax, eax
jne 0x140083287
test eax, eax
jne 0x140083292
inc rbp
cmp rbp, 5
jne 0x140082f20
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
mov r13, rsi
lea rdx, [rsp + 0x140]
jne 0x140082f00
mov rax, qword [rsp + 0x50]
mov rsi, r13
test eax, eax
je 0x140083213
mov r13d, eax
shl r13, 4
xor ebx, ebx
mov r12d, 0x29
jmp 0x140083080
inc r15d
add rbx, 0x10
cmp r13, rbx
je 0x140083213
movzx eax, word [rdi + rbx + 8]
mov ecx, eax
and ecx, 1
cmovne ecx, r12d
mov edx, eax
and edx, 2
lea ebp, [rcx + rdx*2]
test al, 4
je 0x1400830ee
mov r12, qword [rdi + rbx]
mov dword [rsp + 0x60], 4
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov edx, 0xffff
mov r8d, 0x1008
lea r9, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x1400830e5
cmp dword [rsp + 0x70], 1
jne 0x1400830e5
mov rcx, r12
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
or ebp, 0x32
mov r12d, 0x29
mov rdx, qword [rsi + 0x1a8]
mov rcx, qword [rdi + rbx]
mov r8d, ebp
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x140083267
mov rax, qword [rdi + rbx]
mov edx, r15d
shl rdx, 4
mov r8, qword [rsp + 0x30]
mov qword [r8 + rdx], rax
lea rax, [r8 + rdx]
add rax, 8
mov word [r8 + rdx + 8], 0
movzx ecx, word [rdi + rbx + 8]
and ecx, 1
neg ecx
and ecx, 0x300
mov word [r8 + rdx + 8], cx
movzx edx, word [rdi + rbx + 8]
test dl, 2
je 0x14008315f
movzx ecx, cx
or ecx, 0x400
mov word [rax], cx
movzx edx, word [rdi + rbx + 8]
test dl, 4
je 0x140083070
movzx ecx, cx
or ecx, 0x10
mov word [rax], cx
jmp 0x140083070
cmp qword [r13 + 0xd0], 0
je 0x14008329c
lea rcx, [rsp + 0xa0]
call fcn.1400902e0
mov rdx, qword [r13 + 0xd0]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.1400bc920
mov qword [r13 + 0xd0], rax
lea rcx, [rax + 0x20]
mov rdx, qword [rsp + 0xa0]
xor r12d, r12d
cmp qword [rax + 0x20], rdx
jl 0x140082e7f
jg 0x1400831dc
mov eax, dword [rax + 0x28]
cmp eax, dword [rsp + 0xa8]
jle 0x140082e7f
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x60]
call fcn.1400903a0
cmp rax, 2
mov r12d, 1
cmovge r12, rax
jmp 0x140082e7f
mov r12, qword [rsp + 0x1e0]
test r15d, r15d
jne 0x140083230
xor ebx, ebx
cmp byte [rsp + 0x1f0], 0
je 0x1400835ea
test r15d, r15d
je 0x1400832a7
mov rcx, qword [rsp + 0x30]
mov edx, r15d
xor r8d, r8d
call fcn.1400bcea0
mov dword [rsp + 0x2c], eax
test eax, eax
js 0x140083670
je 0x1400832a7
mov dword [rsp + 0x48], 0
jmp 0x1400832d7
mov ebx, 3
jmp 0x140082c59
mov ebx, 4
cmp dword [rsp + 0x44], 0xb
jb 0x140082c59
mov rcx, qword [rsp + 0x30]
call qword [0x140136438]
jmp 0x140082c59
mov rcx, qword [rsp + 0x30]
call qword [0x140136438]
mov ebx, 4
jmp 0x140082c59
mov r12d, 0xffffffff
jmp 0x140082e7f
lea rdx, [rsi + 0x1a8]
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x2c], 0
mov ecx, 1
xor r8d, r8d
mov r9d, dword [rsp + 0x5c]
call qword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov al, 1
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
test eax, eax
mov qword [rsp + 0x38], rsi
je 0x1400833c9
test r12, r12
setne cl
and cl, byte [rsp + 0x48]
mov byte [rsp + 0x2b], cl
mov eax, eax
shl rax, 4
mov qword [rsp + 0x50], rax
xor ebp, ebp
mov r13d, r14d
jmp 0x140083320
mov word [rdi + rbp + 0xa], si
add rbp, 0x10
inc r13d
cmp qword [rsp + 0x50], rbp
je 0x1400833c9
mov eax, r13d
shl rax, 4
mov rcx, qword [rsp + 0x30]
movzx ebx, word [rcx + rax + 0xa]
mov r12, qword [rdi + rbp]
mov dword [rsp + 0x70], 0
xor esi, esi
mov rcx, r12
xor edx, edx
lea r8, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x14008337f
mov eax, dword [rsp + 0x70]
xor ecx, ecx
test al, 0x29
setne cl
lea edx, [rcx + 4]
test al, 0x32
cmove edx, ecx
mov esi, eax
shr esi, 1
and esi, 2
or esi, edx
test eax, eax
setne al
and al, byte [rsp + 0x2b]
movzx eax, al
add dword [rsp + 0x2c], eax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, r12
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp byte [rsp + 0x48], 0
jne 0x140083309
xor eax, eax
test ebx, 0x300
setne al
mov ecx, ebx
shr ecx, 2
and ecx, 4
shr ebx, 9
and ebx, 2
or ebx, ecx
or ebx, eax
movzx esi, si
or esi, ebx
jmp 0x140083309
test r14d, r14d
je 0x1400835ca
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax + 8]
test rdi, rdi
je 0x1400835ca
mov rbp, qword [rsp + 0x1e0]
test rbp, rbp
setne bpl
and bpl, byte [rsp + 0x48]
lea r13, [rsp + 0x70]
mov r14, qword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
mov rbx, qword [sym.imp.WS2_32.dll_WSAEventSelect]
mov esi, dword [rsp + 0x2c]
jmp 0x140083437
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, qword [rsp + 0x160]
xor r8d, r8d
call rbx
mov rdi, qword [rdi + 0x10]
test rdi, rdi
je 0x1400835ce
mov rcx, rdi
lea rdx, [rsp + 0x140]
call fcn.140082b70
test eax, 0x10001
je 0x14008342a
mov r12d, eax
mov dword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x140]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14008347d
cmp dword [rsp + 0x70], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, qword [rsp + 0x140]
xor r8d, r8d
call rbx
test r12d, 0x20002
je 0x14008342a
mov dword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x148]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x1400834cb
cmp dword [rsp + 0x70], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, qword [rsp + 0x148]
xor r8d, r8d
call rbx
test r12d, 0x40004
je 0x14008342a
mov dword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x150]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14008351d
cmp dword [rsp + 0x70], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, qword [rsp + 0x150]
xor r8d, r8d
call rbx
test r12d, 0x80008
je 0x14008342a
mov dword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x158]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x14008356f
cmp dword [rsp + 0x70], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x1a8]
mov rcx, qword [rsp + 0x158]
xor r8d, r8d
call rbx
test r12d, 0x100010
je 0x14008342a
mov dword [rsp + 0x70], 0
mov rcx, qword [rsp + 0x160]
xor edx, edx
mov r8, r13
call r14
test eax, eax
jne 0x140083411
cmp dword [rsp + 0x70], 0
setne al
and al, bpl
movzx eax, al
add esi, eax
jmp 0x140083411
mov esi, dword [rsp + 0x2c]
mov ebx, esi
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rsi + 0x1a8]
call qword [sym.imp.WS2_32.dll_WSAResetEvent]
mov r12, qword [rsp + 0x1e0]
cmp dword [rsp + 0x44], 0xb
jb 0x1400835fc
mov rcx, qword [rsp + 0x30]
call qword [0x140136438]
test r12, r12
je 0x140083605
mov dword [r12], ebx
xor ebx, ebx
test r15d, r15d
jne 0x140082c59
cmp byte [rsp + 0x1e8], 0
je 0x140082c59
cmp byte [rsp + 0x1f0], 0
jne 0x140082c59
mov dword [rsp + 0x60], 0
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.1400858a0
test eax, eax
jne 0x140082c59
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x140082c59
mov ecx, eax
mov edx, dword [rsp + 0x5c]
cmovs ecx, edx
cmp eax, edx
cmovg ecx, edx
movsxd rcx, ecx
call fcn.1400bccc0
jmp 0x140082c59
mov ebx, reloc.WS2_32.dll_inet_ntoa
jmp 0x140082c59