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

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xb8]
mov r13d, dword [rsp + 0xb0]
lea rbp, [rdx + 0x40]
mov qword [rdx + 0x70], rax
mov rdi, rcx
mov rsi, rdx
mov dword [rdx + 8], 3
mov rbx, r8
mov r12, r9
mov qword [rdx + 0x80], r8
mov qword [rdx + 0x40], 0
mov qword [rdx + 0x48], 0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0
test byte [r8 + 0x5a], 8
je 0x4d2628
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [rsi + 0xa0], rax
test rax, rax
je 0x4d28f0
mov qword [rsi + 0xa8], 0xffffffffffffffff
or rax, 1
mov qword [rsi + 0x58], rax
mov rcx, qword [rbx + 0x110]
lea r9, [rsp + 0x4c]
mov qword [rsp + 0x28], rbp
mov r8d, r13d
mov qword [rsp + 0x30], 0
mov rdx, r12
mov dword [rsp + 0x20], 0
call qword [sym.imp.WS2_32.dll_WSASend]
test eax, eax
jne 0x4d26f0
mov eax, dword [rbx + 0x58]
test eax, 0x20000
je 0x4d2798
mov edx, dword [rbx + 0x7c]
mov qword [rsi + 0x60], 0
add dword [rbx + 0x78], 1
lea ecx, [rdx + 1]
add dword [rbx + 0x100], 1
mov dword [rbx + 0x7c], ecx
test edx, edx
je 0x4d28a0
test ecx, ecx
jg 0x4d26ae
mov r8d, 0x375
lea rdx, str.src_win_tcp.c
lea rcx, [0x0071d1f4]
call qword [sym.imp.msvcrt.dll__assert]
mov rax, qword [rdi + 0x48]
add dword [rdi + 0x20], 1
mov qword [rsi + 0x68], 0
test rax, rax
je 0x4d277d
mov rdx, qword [rax + 0x68]
mov qword [rsi + 0x68], rdx
mov qword [rax + 0x68], rsi
xor eax, eax
mov qword [rdi + 0x48], rsi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x4d2798
mov eax, dword [rbx + 0x7c]
mov qword [rsi + 0x60], 0
add dword [rbx + 0x78], 1
lea edx, [rax + 1]
add dword [rbx + 0x100], 1
mov dword [rbx + 0x7c], edx
test eax, eax
je 0x4d28c8
test edx, edx
jg 0x4d2743
mov r8d, 0x38a
lea rdx, str.src_win_tcp.c
lea rcx, [0x0071d1f4]
call qword [sym.imp.msvcrt.dll__assert]
add dword [rdi + 0x20], 1
mov rbx, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rbx
test eax, eax
jle 0x4d2870
call rbx
movzx eax, ax
or eax, 0x80070000
cdqe
mov qword [rsi + 0x40], rax
mov rax, qword [rdi + 0x48]
mov qword [rsi + 0x68], 0
test rax, rax
jne 0x4d26c7
xor eax, eax
mov qword [rsi + 0x68], rsi
mov qword [rdi + 0x48], rsi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov edx, r13d
mov rcx, r12
call fcn.004b9300
mov edx, dword [rbx + 0x7c]
mov qword [rsi + 0x60], rax
lea ecx, [rdx + 1]
add dword [rbx + 0x78], 1
add dword [rbx + 0x100], 1
mov dword [rbx + 0x7c], ecx
test edx, edx
jne 0x4d27f0
mov edx, dword [rbx + 0x58]
test dl, 4
je 0x4d2880
add dword [rdi + 0x20], 1
add qword [rbx + 0x60], rax
and edx, 0x80000
jne 0x4d2825
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
test ecx, ecx
jg 0x4d2812
mov r8d, 0x37c
lea rdx, str.src_win_tcp.c
lea rcx, [0x0071d1f4]
call qword [sym.imp.msvcrt.dll__assert]
mov rax, qword [rsi + 0x60]
mov edx, dword [rbx + 0x58]
add dword [rdi + 0x20], 1
add qword [rbx + 0x60], rax
and edx, 0x80000
je 0x4d27db
mov dword [rsp + 0x28], 0xc
mov rdx, qword [rsi + 0xa0]
lea rcx, [rsi + 0xa8]
mov r9, rsi
mov dword [rsp + 0x20], 0xffffffff
lea r8, [0x004d1780]
call qword [sym.imp.KERNEL32.dll_RegisterWaitForSingleObject]
test eax, eax
jne 0x4d27db
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbx
test eax, eax
jg 0x4d2758
nop dword [rax + rax]
call rbx
cdqe
jmp 0x4d2764
mov ecx, edx
or ecx, 4
and edx, 8
mov dword [rbx + 0x58], ecx
mov edx, ecx
je 0x4d27cb
mov rcx, qword [rbx + 8]
add dword [rcx + 8], 1
jmp 0x4d27cb
test al, 4
jne 0x4d26ae
mov edx, eax
or edx, 4
mov dword [rbx + 0x58], edx
test al, 8
je 0x4d26ae
mov rax, qword [rbx + 8]
add dword [rax + 8], 1
jmp 0x4d26ae
mov eax, dword [rbx + 0x58]
test al, 4
jne 0x4d2743
mov edx, eax
or edx, 4
mov dword [rbx + 0x58], edx
test al, 8
je 0x4d2743
mov rax, qword [rbx + 8]
add dword [rax + 8], 1
jmp 0x4d2743
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [0x0071d1bb]
mov ecx, eax
call fcn.004bb090
nop
nop word cs:[rax + rax]