Function at 0x14000e210
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbx
push rdi
sub rsp, 0x78
mov rbx, rcx
lea rcx, [0x14002db18]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rbx
call fcn.140001240
lea rcx, [0x14002db18]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rdi, rdi
jne 0x14000e257
lea rcx, str.Fail_To_Get_UDP_Data_Socket_n
call fcn.140002780
add rsp, 0x78
pop rdi
pop rbx
ret
cmp dword [rdi + 0x120], 0
je 0x14000e2a0
lea rcx, str.Host_Resolving_Is_Taking_Place_n
call fcn.140002780
mov edx, dword [rdi + 0xc0]
test dl, 0x20
jne 0x14000e2a0
add edx, 0x20
mov dword [rdi + 0xc0], edx
cmp dword [0x14002dfe8], 0
je 0x14000e813
lea rcx, str.Event_Queue:__d_n
call fcn.14001347c
add rsp, 0x78
pop rdi
pop rbx
ret
xor eax, eax
mov qword [rsp + 0x68], rsi
lea rsi, [rdi + 0x5c]
mov qword [rsp + 0x60], r12
xor r12d, r12d
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0xa0], r12d
mov dword [rsp + 0x98], r12d
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov dword [rsp + 0xa8], reloc.WS2_32.dll_recv
mov ecx, dword [rdi + 0x3c]
test ecx, ecx
jle 0x14000e323
mov eax, dword [rdi + 0x40]
test eax, eax
js 0x14000e323
cmp ecx, eax
jle 0x14000e809
add dword [rdi + 0xc0], 0x20
mov r8, qword [rdi + 8]
mov rcx, qword [0x14002dfe0]
lea r9d, [r12 + 2]
mov edx, 0x403
call qword [sym.imp.USER32.dll_PostMessageA]
mov rsi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
add rsp, 0x78
pop rdi
pop rbx
ret
mov rax, qword [rdi + 0x30]
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x40], r12
add rax, 0xa
mov qword [rsp + 0x38], r12
lea r9, [rsp + 0xa0]
mov qword [rdi + 0xa8], rax
mov eax, dword [rdi + 0x38]
lea rdx, [rdi + 0xa0]
sub eax, 0xa
mov r8d, 1
mov qword [rsp + 0x70], rbp
mov dword [rdi + 0xa0], eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSARecvFrom]
cmp eax, 0xffffffff
jne 0x14000e3ab
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14000e804
mov rcx, qword [rdi]
call fcn.140005d50
jmp 0x14000e804
mov eax, dword [rsp + 0xa0]
test eax, eax
je 0x14000e434
lea rcx, [0x14002da20]
mov dword [rdi + 0x3c], eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [rsp + 0xa0]
lea rcx, [0x14002da20]
add qword [rdi + 0xc8], rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [0x14002dac8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rsp + 0xa0]
mov rax, qword [0x14002e1c0]
add rax, r11
lea rcx, [0x14002dac8]
mov qword [0x14002e1c0], rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11d, dword [rsp + 0xa0]
lock xadd dword [0x14002e1bc], r11d
mov eax, dword [rsp + 0xa0]
lock xadd dword [0x14002e1cc], eax
lea rcx, [0x14002db18]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rdi + 0x48]
lea rcx, [0x14002db18]
mov dword [rdi + 0xb8], eax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp ebx, 3
jne 0x14000e48d
mov rcx, qword [rdi]
mov edx, 0x258
call fcn.14000d650
test eax, eax
je 0x14000e48d
cmp dword [0x14002dfe8], r12d
je 0x14000e48d
lea rcx, str.Set_Time_Out_To__d_Seconds_OK_n
mov edx, 0x258
call fcn.14001347c
cmp dword [rdi + 0x118], r12d
jne 0x14000e4c2
mov eax, dword [rdi + 0x50]
cmp dword [rdi + 0x60], eax
jne 0x14000e4c2
movzx eax, word [rdi + 0x5e]
cmp word [rdi + 0x4e], ax
je 0x14000e4c2
lea rcx, str.The_Client_Is_Very_Likely_Behide_NAT_Or_In_Different_Network_From_The_Socks_Server_n
mov word [rdi + 0x4e], ax
mov dword [rdi + 0x118], 1
call fcn.140002780
cmp dword [0x14002dfe8], r12d
je 0x14000e507
mov ecx, dword [rdi + 0x60]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
call fcn.1400013d0
movzx ecx, word [rdi + 0x5e]
call qword [sym.imp.WS2_32.dll_ntohs]
lea rcx, [0x140025b9c]
movzx edx, ax
call fcn.14001347c
mov edx, dword [rsp + 0xa0]
lea rcx, str.____Socks_Server_:__d_Bytes._n
call fcn.14001347c
mov eax, dword [rdi + 0x50]
cmp dword [rdi + 0x60], eax
jne 0x14000e69a
movzx eax, word [rdi + 0x4e]
cmp word [rdi + 0x5e], ax
jne 0x14000e69a
cmp dword [rdi + 0x118], r12d
jne 0x14000e540
lea rcx, str.The_Client_Is_On_The_Same_Network_To_The_Socks_Server_n
mov dword [rdi + 0x118], 1
call fcn.140002780
mov rdx, qword [rdi + 0x30]
mov r8, rsi
mov rcx, rdi
add rdx, 0xd
call fcn.140005b60
cmp eax, 1
jne 0x14000e673
mov r9, qword [rdi + 0x30]
lea rcx, [r9 + 0xa]
call fcn.140001410
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
movsxd rbx, eax
lea rdx, [rdi + 0xa0]
mov r8d, 1
lea r9, [rbx + r9 + 0xa]
mov qword [rdi + 0xa8], r9
mov ecx, dword [rsp + 0xa0]
lea r9, [rsp + 0x98]
sub ecx, ebx
mov dword [rdi + 0xa0], ecx
mov ecx, dword [rsp + 0xa8]
mov dword [rsp + 0x30], ecx
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r12d
call qword [sym.imp.WS2_32.dll_WSASendTo]
cmp eax, 0xffffffff
je 0x14000e731
cmp dword [rsp + 0xa0], r12d
jbe 0x14000e5e2
mov eax, dword [rsp + 0x98]
add dword [rdi + 0x40], eax
mov eax, dword [rdi + 0x3c]
sub eax, ebx
cmp dword [rdi + 0x40], eax
jne 0x14000e603
mov r8d, dword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
xor edx, edx
mov dword [rdi + 0x40], r12d
mov dword [rdi + 0x3c], r12d
call fcn.140013cc0
cmp dword [0x14002dfe8], r12d
je 0x14000e657
lea rcx, str.Socks_Server___
call fcn.14001347c
mov ecx, dword [rdi + 0x60]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
call fcn.1400013d0
movzx ecx, word [rdi + 0x5e]
call qword [sym.imp.WS2_32.dll_ntohs]
lea rcx, [0x140025b9c]
movzx edx, ax
call fcn.14001347c
mov edx, dword [rsp + 0x98]
lea rcx, str._:__d_Bytes.Header_Length:__d_Bytes_Less_Above_n_n
mov r8d, ebx
call fcn.14001347c
mov eax, dword [rsp + 0x98]
test eax, eax
je 0x14000e804
lock xadd dword [0x14002e1d4], eax
jmp 0x14000e7f5
cmp eax, 2
je 0x14000e689
lea rcx, str.Bad_Type_Request1_n
call fcn.140002780
jmp 0x14000e804
lea rcx, str.Host_Name_Type_n
call fcn.140002780
jmp 0x14000e804
mov rax, qword [rdi + 0x30]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov byte [rax + 2], r12b
mov rax, qword [rdi + 0x30]
lea r9, [rsp + 0x98]
mov byte [rax + 1], r12b
mov rax, qword [rdi + 0x30]
lea rdx, [rdi + 0xa0]
mov byte [rax], r12b
mov rax, qword [rdi + 0x30]
mov r8d, 1
mov byte [rax + 3], 1
mov eax, dword [rdi + 0x60]
mov rcx, qword [rdi + 0x30]
mov dword [rcx + 4], eax
mov rcx, qword [rdi + 0x30]
movzx eax, word [rdi + 0x5e]
mov word [rcx + 8], ax
mov rax, qword [rdi + 0x30]
lea rcx, [rdi + 0x4c]
mov qword [rdi + 0xa8], rax
mov eax, dword [rsp + 0xa0]
add eax, 0xa
mov dword [rdi + 0xa0], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov rcx, qword [rdi + 8]
mov dword [rsp + 0x20], r12d
call qword [sym.imp.WS2_32.dll_WSASendTo]
cmp eax, 0xffffffff
jne 0x14000e753
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14000e39e
lea rcx, str.The_Data_Socket_Is_Full_n
call fcn.140002780
jmp 0x14000e804
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x14000e768
add dword [rdi + 0x40], ecx
mov ecx, dword [rsp + 0x98]
mov eax, dword [rdi + 0x3c]
add eax, 0xa
cmp dword [rdi + 0x40], eax
jne 0x14000e791
mov r8d, dword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
xor edx, edx
mov dword [rdi + 0x40], r12d
mov dword [rdi + 0x3c], r12d
call fcn.140013cc0
mov ecx, dword [rsp + 0x98]
cmp dword [0x14002dfe8], r12d
je 0x14000e7e9
lea rcx, str.Socks_Server___
call fcn.14001347c
mov ecx, dword [rdi + 0x50]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
call fcn.1400013d0
movzx ecx, word [rdi + 0x4e]
call qword [sym.imp.WS2_32.dll_ntohs]
lea rcx, [0x140025b9c]
movzx edx, ax
call fcn.14001347c
mov edx, dword [rsp + 0x98]
lea rcx, str._:__d_Bytes._10_Bytes_Plus_Above_n_n
call fcn.14001347c
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x14000e804
lock xadd dword [0x14002e1d4], ecx
mov eax, dword [rsp + 0x98]
lock xadd dword [0x14002e1dc], eax
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
add rsp, 0x78
pop rdi
pop rbx
ret