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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
mov eax, 0x10728
call fcn.1400b5410
sub rsp, rax
lea rbp, [rsp + 0x50]
lea rdi, [rsp + 0x50]
mov ecx, 0x4036
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x10748]
lea rcx, [0x14024c061]
call fcn.1400b51d0
nop
cmp dword [rbp + 0x106f8], 0
jge 0x1400464dd
mov al, 1
jmp 0x140046c3a
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp dword [rbp + 0x106f8], 0
jge 0x140046509
mov dword [rbp + 0x106b4], 0
jmp 0x140046537
cmp dword [rbp + 0x106f8], 0x3e7
jle 0x140046521
mov dword [rbp + 0x106b8], 0
jmp 0x14004652b
mov dword [rbp + 0x106b8], 1
mov eax, dword [rbp + 0x106b8]
mov dword [rbp + 0x106b4], eax
cmp dword [rbp + 0x106b4], 0
jne 0x1400465cb
mov eax, 1
imul rax, rax, 2
mov rcx, qword [rbp + 0x10700]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rbp + 0x10700]
movzx ecx, byte [rdx + rcx]
mov edx, 1
imul rdx, rdx, 0
mov r8, qword [rbp + 0x10700]
movzx edx, byte [r8 + rdx]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov r9d, dword [rbp + 0x10708]
lea r8, str.error_L2:_Index__d___x__x__x
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
xor al, al
jmp 0x140046c3a
mov rax, qword [rbp + 0x10700]
mov qword [rbp + 0x48], rax
movsxd rax, dword [rbp + 0x106f8]
imul rax, rax, 0x48
lea rcx, [0x1402030f0]
cmp dword [rcx + rax + 4], 0
jne 0x14004660d
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
xor al, al
jmp 0x140046c3a
movsxd rax, dword [rbp + 0x106f8]
imul rax, rax, 0x48
lea rcx, [0x1402030f0]
mov rax, qword [rcx + rax + 0x30]
mov qword [rbp + 0x28], rax
mov eax, dword [rbp + 0x10708]
cmp rax, 0x4000
jbe 0x1400466a0
mov eax, dword [0x1402010dc]
add eax, 0x21
mov dword [rsp + 0x28], eax
lea rax, str.C:Users_soul_DocumentszMuSourceConnectServerIOCP.cpp
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x10708]
lea r8, str.Error:_Max_msg__d___s__d
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
mov edx, dword [rbp + 0x106f8]
mov rcx, qword [rbp + 0x106f0]
call fcn.140046000
nop
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
xor al, al
jmp 0x140046c3a
mov eax, 0x8048
imul rax, rax, 1
mov rcx, qword [rbp + 0x28]
lea rax, [rcx + rax + 0x10]
mov qword [rbp + 0x10088], rax
mov rax, qword [rbp + 0x10088]
cmp dword [rax + 0x8040], 0
jle 0x1400467e7
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8030]
add eax, dword [rbp + 0x10708]
cmp eax, 0x3fff
jbe 0x140046779
mov eax, dword [rbp + 0x10708]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8030]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8034]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbp + 0x106f8]
lea r8, str.__d_error_L2:_MAX_BUFFER_OVER__d__d__d
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8040], 0
mov edx, dword [rbp + 0x106f8]
mov rcx, qword [rbp + 0x106f0]
call fcn.140046000
nop
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov al, 1
jmp 0x140046c3a
mov eax, dword [rbp + 0x10708]
mov rcx, qword [rbp + 0x10088]
movsxd rcx, dword [rcx + 0x8030]
mov rdx, qword [rbp + 0x10088]
lea rcx, [rdx + rcx + 0x4030]
mov r8d, eax
mov rdx, qword [rbp + 0x48]
call fcn.14019ead0
nop
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8030]
add eax, dword [rbp + 0x10708]
mov rcx, qword [rbp + 0x10088]
mov dword [rcx + 0x8030], eax
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov al, 1
jmp 0x140046c3a
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8034], 0
mov rax, qword [rbp + 0x10088]
cmp dword [rax + 0x8030], 0
jle 0x140046877
mov rax, qword [rbp + 0x10088]
movsxd rax, dword [rax + 0x8030]
mov rcx, qword [rbp + 0x10088]
add rcx, 0x4030
mov rdx, qword [rbp + 0x10088]
add rdx, 0x30
mov qword [rbp + 0x106b8], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rbp + 0x106b8]
mov rcx, rax
call fcn.14019ead0
nop
mov rax, qword [rbp + 0x10088]
mov rcx, qword [rbp + 0x10088]
mov ecx, dword [rcx + 0x8030]
mov dword [rax + 0x8034], ecx
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8030], 0
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8034]
add eax, dword [rbp + 0x10708]
cmp eax, 0x3fff
jbe 0x14004690e
mov eax, dword [rbp + 0x10708]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8034]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbp + 0x106f8]
lea r8, str.__d_error_L2:_MAX_BUFFER_OVER__d__d
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8040], 0
mov edx, dword [rbp + 0x106f8]
mov rcx, qword [rbp + 0x106f0]
call fcn.140046000
nop
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
xor al, al
jmp 0x140046c3a
mov eax, dword [rbp + 0x10708]
mov rcx, qword [rbp + 0x10088]
movsxd rcx, dword [rcx + 0x8034]
mov rdx, qword [rbp + 0x10088]
lea rcx, [rdx + rcx + 0x30]
mov r8d, eax
mov rdx, qword [rbp + 0x48]
call fcn.14019ead0
nop
mov rax, qword [rbp + 0x10088]
mov eax, dword [rax + 0x8034]
add eax, dword [rbp + 0x10708]
mov rcx, qword [rbp + 0x10088]
mov dword [rcx + 0x8034], eax
mov rax, qword [rbp + 0x10088]
add rax, 0x30
mov rcx, qword [rbp + 0x10088]
mov qword [rcx + 0x28], rax
mov rax, qword [rbp + 0x10088]
mov rcx, qword [rbp + 0x10088]
mov ecx, dword [rcx + 0x8034]
mov dword [rax + 0x20], ecx
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8038], 0
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x803c], 1
mov rax, qword [rbp + 0x10088]
mov rcx, qword [rbp + 0x10088]
add rcx, 0x20
movsxd rdx, dword [rbp + 0x106f8]
imul rdx, rdx, 0x48
mov qword [rbp + 0x106b8], rdx
lea r8, [0x1402030f0]
mov qword [rbp + 0x106c0], r8
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
lea r9, [rbp + 4]
mov r8d, 1
mov rdx, rcx
mov rcx, qword [rbp + 0x106c0]
mov rax, qword [rbp + 0x106b8]
mov rcx, qword [rcx + rax + 0x28]
call qword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x140046bfa
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x140046bf8
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8040], 0
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x10088]
mov rcx, qword [rcx + 0x28]
movsx eax, byte [rcx + rax]
cmp eax, 0xc1
jne 0x140046b09
movsxd rax, dword [rbp + 0x106f8]
imul rax, rax, 0x48
lea rcx, [0x1402030f0]
lea rax, [rcx + rax + 8]
mov qword [rbp + 0x106b8], rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rbp + 0x10088]
mov rdx, qword [rdx + 0x28]
movzx ecx, byte [rdx + rcx]
mov edx, 1
imul rdx, rdx, 0
mov r8, qword [rbp + 0x10088]
mov r8, qword [r8 + 0x28]
movzx edx, byte [r8 + rdx]
mov r8d, dword [0x1402010dc]
add r8d, 0x60
mov r9, qword [rbp + 0x106b8]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], edx
mov eax, dword [rbp + 0x106f8]
mov dword [rsp + 0x20], eax
mov r9d, r8d
lea r8, str.__d_WSASend__d__failed_with_error___x___x___d__s
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
jmp 0x140046bca
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rbp + 0x10088]
mov rcx, qword [rcx + 0x28]
movsx eax, byte [rcx + rax]
cmp eax, 0xc2
jne 0x140046bca
movsxd rax, dword [rbp + 0x106f8]
imul rax, rax, 0x48
lea rcx, [0x1402030f0]
lea rax, [rcx + rax + 8]
mov qword [rbp + 0x106b8], rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rbp + 0x10088]
mov rdx, qword [rdx + 0x28]
movzx ecx, byte [rdx + rcx]
mov edx, 1
imul rdx, rdx, 0
mov r8, qword [rbp + 0x10088]
mov r8, qword [r8 + 0x28]
movzx edx, byte [r8 + rdx]
mov r8d, dword [0x1402010dc]
add r8d, 0x65
mov r9, qword [rbp + 0x106b8]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], edx
mov eax, dword [rbp + 0x106f8]
mov dword [rsp + 0x20], eax
mov r9d, r8d
lea r8, str.__d_WSASend__d__failed_with_error___x___x___d__s
mov edx, 0xff
lea rcx, [0x14022f400]
call fcn.14004c6a0
nop
mov edx, dword [rbp + 0x106f8]
mov rcx, qword [rbp + 0x106f0]
call fcn.140046000
nop
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
xor al, al
jmp 0x140046c3a
jmp 0x140046c10
mov rax, qword [rbp + 0x28]
mov eax, dword [rax + 0x100a0]
inc eax
mov rcx, qword [rbp + 0x28]
mov dword [rcx + 0x100a0], eax
mov rax, qword [rbp + 0x10088]
mov dword [rax + 0x8040], 1
mov rax, qword [rbp + 0x106f0]
add rax, 0x98
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov al, 1
mov rdi, rax
lea rcx, [rbp - 0x50]
lea rdx, reloc.WS2_32.dll_closesocket
call fcn.1400b4fa0
mov rax, rdi
lea rsp, [rbp + 0x106d8]
pop rdi
pop rbp
ret