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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xa8]
sub rsp, 0x1a8
mov rax, qword [0x7ff7aa74f840]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rax, qword [rbp + 0x100]
xor esi, esi
mov dword [rsp + 0x38], r9d
mov r15, rdx
mov r14d, r8d
mov r12, rcx
mov qword [rsp + 0x70], rdx
mov edi, esi
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x78], rax
test rcx, rcx
je 0x7ff7aa67b408
cmp dword [rcx], 0xbab1e
jne 0x7ff7aa67b408
cmp byte [rcx + 0x22b], sil
je 0x7ff7aa67af1a
mov eax, 8
jmp 0x7ff7aa67b40d
test r9d, r9d
jns 0x7ff7aa67af29
mov eax, 0xa
jmp 0x7ff7aa67b40d
mov r8d, 0xa
mov qword [rsp + 0x1f0], rbx
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x50]
call fcn.7ff7aa6a4a00
mov rbx, qword [r12 + 8]
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp - 0x50], rax
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
test rbx, rbx
je 0x7ff7aa67af8f
lea rdx, [rbp - 0x80]
mov rcx, rbx
call fcn.7ff7aa6798a0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call fcn.7ff7aa6a4860
test eax, eax
jne 0x7ff7aa67b111
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x7ff7aa67af64
lea rcx, [r12 + 0x158]
lea rdx, [rsp + 0x50]
call fcn.7ff7aa682700
test eax, eax
jne 0x7ff7aa67b111
mov eax, dword [rsp + 0x58]
mov rbx, rsi
mov qword [rsp + 0x1a0], r13
mov r13, r14
mov dword [rsp + 0x30], eax
mov r8d, 0x400
mov qword [rsp + 0x40], r14
test r14d, r14d
je 0x7ff7aa67b03d
mov r14, r15
nop dword [rax]
nop word [rax + rax]
movzx r9d, word [r14 + 8]
movzx eax, r9b
and al, 1
neg al
sbb cx, cx
and cx, 0x300
movzx edx, cx
or dx, r8w
test r9b, 2
cmove dx, cx
lea rcx, [rsp + 0x50]
movzx r8d, dx
or r8w, 0x10
test r9b, 4
cmove r8w, dx
mov rdx, qword [r14]
call fcn.7ff7aa6a49c0
test eax, eax
jne 0x7ff7aa67b11b
inc rbx
add r14, 0x10
mov r8d, 0x400
cmp rbx, r13
jb 0x7ff7aa67afe0
mov r15, rsi
mov ecx, 0x300
cmp dword [rsp + 0x58], esi
jbe 0x7ff7aa67b125
mov r14, rsi
mov r12, qword [rsp + 0x50]
movzx edx, word [r12 + r14 + 8]
movzx eax, dx
and ax, cx
neg ax
sbb ecx, ecx
and ecx, 0x29
mov ebx, ecx
or ebx, 4
test r8w, dx
cmove ebx, ecx
test dl, 0x10
je 0x7ff7aa67b0ca
mov r12, qword [r12 + r14]
lea rax, [rsp + 0x68]
mov rcx, r12
mov dword [rsp + 0x68], 4
lea r9, [rsp + 0x34]
mov qword [rsp + 0x20], rax
mov edx, 0xffff
mov r8d, 0x1008
or ebx, 0x32
call qword [sym.imp.ws2_32.dll_getsockopt]
test eax, eax
jne 0x7ff7aa67b0ca
cmp dword [rsp + 0x34], 1
jne 0x7ff7aa67b0ca
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.ws2_32.dll_send]
mov r12, qword [rsp + 0x48]
test ebx, ebx
je 0x7ff7aa67b0f1
mov rcx, qword [rsp + 0x50]
mov r8d, ebx
mov rdx, qword [r12 + 0x218]
mov rcx, qword [r14 + rcx]
call qword [sym.imp.ws2_32.dll_WSAEventSelect]
test eax, eax
jne 0x7ff7aa67b11b
mov eax, dword [rsp + 0x58]
inc r15
add r14, 0x10
cmp r15, rax
jae 0x7ff7aa67b125
mov ecx, 0x300
mov r8d, 0x400
jmp 0x7ff7aa67b052
mov esi, 3
jmp 0x7ff7aa67b3f2
mov esi, 3
jmp 0x7ff7aa67b3ea
lea rdx, [rsp + 0x34]
mov rcx, r12
call fcn.7ff7aa67adb0
mov eax, dword [rsp + 0x34]
mov ebx, dword [rsp + 0x38]
test eax, eax
js 0x7ff7aa67b147
cmp eax, ebx
cmovl ebx, eax
mov dword [rsp + 0x38], ebx
mov eax, dword [rsp + 0x58]
movzx edx, byte [rbp + 0x110]
test eax, eax
jne 0x7ff7aa67b233
test dl, dl
je 0x7ff7aa67b383
mov r14d, esi
add r12, 0x218
mov dword [rsp + 0x20], esi
mov rdx, r12
mov r9d, ebx
xor r8d, r8d
mov ecx, 1
call qword [sym.imp.ws2_32.dll_WSAWaitForMultipleEvents]
test r13, r13
je 0x7ff7aa67b2cd
mov rdx, qword [rsp + 0x70]
mov r15d, dword [rsp + 0x30]
shl r15, 4
sub rdx, r15
mov qword [rsp + 0x70], rdx
nop dword [rax]
nop word [rax + rax]
mov r13, qword [rdx + r15]
lea r8, [rbp - 0x48]
mov rax, qword [rsp + 0x50]
xor edx, edx
movzx ebx, si
movsx ecx, word [r15 + rax + 0xa]
mov dword [rsp + 0x34], ecx
mov rcx, r13
mov dword [rbp - 0x48], esi
call qword [sym.imp.ws2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x7ff7aa67b267
mov r8d, dword [rbp - 0x48]
mov ecx, esi
test r8b, 0x29
setne cl
movzx edx, cx
or dx, 4
test r8b, 0x32
cmove dx, cx
movzx ecx, dx
or cx, 2
test r8b, 4
cmove cx, dx
movzx ebx, cx
cmp qword [rsp + 0x78], rsi
je 0x7ff7aa67b267
test r14d, r14d
jne 0x7ff7aa67b267
test r8d, r8d
je 0x7ff7aa67b267
mov rdx, qword [r12]
inc edi
xor r8d, r8d
mov rcx, r13
call qword [sym.imp.ws2_32.dll_WSAEventSelect]
jmp 0x7ff7aa67b2b2
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov edx, eax
call fcn.7ff7aa6a44a0
mov r14d, eax
test eax, eax
jns 0x7ff7aa67b253
mov esi, 0xc
jmp 0x7ff7aa67b3ea
jle 0x7ff7aa67b165
mov edi, eax
add r12, 0x218
jmp 0x7ff7aa67b184
mov rdx, qword [r12]
xor r8d, r8d
mov rcx, r13
call qword [sym.imp.ws2_32.dll_WSAEventSelect]
test r14d, r14d
je 0x7ff7aa67b2b2
mov r8d, dword [rsp + 0x34]
movzx ecx, bx
or cx, 1
test r8d, 0x300
cmove cx, bx
movzx edx, cx
or dx, 4
test r8b, 0x10
cmove dx, cx
movzx ebx, dx
or bx, 2
bt r8d, 0xa
cmovae bx, dx
mov rdx, qword [rsp + 0x70]
mov word [rdx + r15 + 0xa], bx
add r15, 0x10
sub qword [rsp + 0x40], 1
jne 0x7ff7aa67b1b0
cmp dword [rsp + 0x30], esi
je 0x7ff7aa67b369
mov r15, qword [rsp + 0x48]
mov r15, qword [r15 + 8]
mov qword [rsp + 0x40], r15
test r15, r15
je 0x7ff7aa67b369
nop
lea rdx, [rbp - 0x80]
mov rcx, r15
call fcn.7ff7aa6798a0
mov rbx, rsi
cmp dword [rbp - 0x58], ebx
jbe 0x7ff7aa67b35b
mov r15, qword [rsp + 0x78]
nop dword [rax]
mov rcx, qword [rbp + rbx*8 - 0x80]
lea r8, [rbp - 0x48]
xor edx, edx
mov dword [rbp - 0x48], esi
call qword [sym.imp.ws2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x7ff7aa67b339
test r15, r15
je 0x7ff7aa67b339
test r14d, r14d
jne 0x7ff7aa67b339
cmp dword [rbp - 0x48], esi
je 0x7ff7aa67b339
inc edi
mov rdx, qword [r12]
xor r8d, r8d
mov rcx, qword [rbp + rbx*8 - 0x80]
call qword [sym.imp.ws2_32.dll_WSAEventSelect]
mov eax, dword [rbp - 0x58]
inc rbx
cmp rbx, rax
jb 0x7ff7aa67b310
mov r15, qword [rsp + 0x40]
mov r15, qword [r15 + 0x10]
mov qword [rsp + 0x40], r15
test r15, r15
jne 0x7ff7aa67b2f0
mov rcx, qword [r12]
call qword [sym.imp.ws2_32.dll_WSAResetEvent]
mov eax, dword [rsp + 0x58]
movzx edx, byte [rbp + 0x110]
mov r12, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x7ff7aa67b38f
mov dword [rcx], edi
cmp byte [rbp + 0x108], sil
je 0x7ff7aa67b3ea
test eax, eax
jne 0x7ff7aa67b3ea
test dl, dl
jne 0x7ff7aa67b3ea
cmp dword [r12], 0xbab1e
mov dword [rsp + 0x30], esi
jne 0x7ff7aa67b3ea
cmp byte [r12 + 0x22b], sil
jne 0x7ff7aa67b3ea
lea rdx, [rsp + 0x30]
mov rcx, r12
call fcn.7ff7aa67adb0
test eax, eax
jne 0x7ff7aa67b3ea
mov ecx, dword [rsp + 0x30]
test ecx, ecx
je 0x7ff7aa67b3ea
mov r9d, dword [rsp + 0x38]
cmp ecx, r9d
jg 0x7ff7aa67b3df
test ecx, ecx
jns 0x7ff7aa67b3e2
mov ecx, r9d
movsxd rcx, ecx
call fcn.7ff7aa6a4b80
mov r13, qword [rsp + 0x1a0]
lea rcx, [rsp + 0x50]
call fcn.7ff7aa6a49d0
mov rbx, qword [rsp + 0x1f0]
mov eax, esi
jmp 0x7ff7aa67b40d
mov eax, 1
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.7ff7aa6d76b0
add rsp, 0x1a8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret