Function at 0x140092990
Capabilities:
Connect socket
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xe0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r14, r9
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov byte [rcx], 1
lea rdx, str.socket.tcp
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x1400929f2
mov rcx, rdi
call fcn.14006e4c0
mov edx, 1
lea ecx, [rdx + 1]
jmp 0x140092a16
lea rdx, str.socket.udp
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092a2f
mov rcx, rdi
call fcn.14006e4c0
mov esi, 2
mov edx, esi
mov ecx, esi
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_socket]
mov rdx, rax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.send
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092a84
mov edx, 2
lea r8d, [rdx + 0xb]
mov rcx, rdi
call fcn.14006e180
mov rcx, qword [rdi + 0x40]
xor r9d, r9d
mov r8, qword [rcx + 0x120]
mov rdx, qword [rcx + 0x118]
mov rcx, qword [rcx + 0x80]
call fcn.1400efbd0
mov rdx, rax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.sendto
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092b81
mov dword [rsp + 0x20], reloc.WS2_32.dll_listen
mov esi, 2
mov r9d, esi
lea r8d, [rsi - 1]
mov edx, esi
mov rcx, rdi
call fcn.14006e240
xor r15d, r15d
mov qword [rbp - 0x69], r15
mov word [rbp - 0x71], si
mov rax, qword [rdi + 0x40]
movzx ecx, word [rax + 0x1b0]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x6f], ax
mov rcx, qword [rdi + 0x40]
add rcx, 0xf0
lea rdx, [rbp - 0x61]
call fcn.140022ea0
cmp qword [rax + 0x18], 0x10
jb 0x140092af7
mov rax, qword [rax]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rbp - 0x6d], eax
mov rdx, qword [rbp - 0x49]
cmp rdx, 0x10
jb 0x140092b3e
inc rdx
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092b39
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009338b
call fcn.140283144
mov rcx, qword [rdi + 0x40]
mov dword [rsp + 0x28], reloc.ODBC32.dll_SQLFreeStmt
lea rax, [rbp - 0x71]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, dword [rcx + 0x250]
mov rdx, qword [rcx + 0x248]
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_sendto]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.recv
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092ca3
mov edx, 2
mov rcx, rdi
call fcn.14006e150
lea rdx, [0x1404528a0]
mov ecx, 0x2800
call fcn.14028375c
mov rsi, rax
mov qword [rbp - 0x79], rax
mov ecx, 0x2800
xor r15d, r15d
test rax, rax
cmove ecx, r15d
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdi + 0x40]
movsxd rcx, dword [rcx + 0x80]
xor r9d, r9d
mov r8d, 0x2800
mov rdx, rax
call qword [sym.imp.WS2_32.dll_recv]
movsxd rbx, eax
mov rcx, r14
call fcn.140046960
lea rdx, [0x1402e25b0]
lea rcx, [rbp - 0x41]
call fcn.14001c950
nop
mov r8, rbx
lea rdx, [rbp - 0x41]
mov rcx, r14
call fcn.140041d70
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
test ebx, ebx
jle 0x140092c8d
mov ecx, SQLTablesW
call fcn.14028314c
mov qword [rbp - 0x19], rax
test rax, rax
je 0x140092c45
mov rcx, rax
call fcn.14003e8e0
mov r15, rax
mov rdx, rbx
mov rcx, r15
call fcn.1400464e0
mov r8, rbx
mov rdx, rsi
mov rcx, qword [r15 + 0x80]
call fcn.140284ff0
lea rdx, str.buf_data
lea rcx, [rbp - 0x41]
call fcn.14001c950
nop
mov r8, r15
lea rdx, [rbp - 0x41]
mov rcx, r14
call fcn.1400424f0
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
nop
test rsi, rsi
je 0x140093367
mov rcx, rsi
call fcn.140283144
jmp 0x140093367
lea rdx, str.socket.recvfrom
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092eb8
mov edx, 2
mov rcx, rdi
call fcn.14006e150
lea rdx, [0x1404528a0]
mov ecx, 0x2800
call fcn.14028375c
mov rsi, rax
mov qword [rbp - 0x59], rax
mov r12d, 0x2800
xor r15d, r15d
test rax, rax
cmove r12d, r15d
mov qword [rbp - 0x61], r12
mov dword [rbp - 0x19], reloc.ODBC32.dll_SQLFreeStmt
mov rcx, qword [rdi + 0x40]
lea rax, [rbp - 0x19]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x2800
mov rdx, rsi
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_recvfrom]
movsxd rbx, eax
mov rcx, r14
call fcn.140046960
lea rdx, [0x1402e25b0]
lea rcx, [rbp - 0x41]
call fcn.14001c950
nop
mov r8, rbx
lea rdx, [rbp - 0x41]
mov rcx, r14
call fcn.140041d70
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
test ebx, ebx
jle 0x140092e95
mov ecx, dword [rbp - 0x7d]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
test rax, rax
je 0x140092db4
mov rdx, rax
lea rcx, [rbp - 9]
call fcn.14001c840
nop
lea rdx, str.str_peer_ip
lea rcx, [rbp - 0x41]
call fcn.14001c950
nop
lea r8, [rbp - 9]
lea rdx, [rbp - 0x41]
mov rcx, r14
call fcn.1400425c0
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
nop
lea rcx, [rbp - 9]
jmp 0x140092df5
lea rdx, [0x1402d078c]
lea rcx, [rbp - 0x41]
call fcn.14001c950
nop
lea rdx, str.str_peer_ip
lea rcx, [rbp - 9]
call fcn.14001c950
nop
lea r8, [rbp - 0x41]
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.1400425c0
nop
lea rcx, [rbp - 9]
call fcn.14001d440
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
lea rdx, str.i_peer_port
lea rcx, [rbp - 9]
call fcn.14001c950
nop
movzx ecx, word [rbp - 0x7f]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r8d, ax
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.140041d70
nop
lea rcx, [rbp - 9]
call fcn.14001d440
mov ecx, SQLTablesW
call fcn.14028314c
mov qword [rbp - 0x71], rax
test rax, rax
je 0x140092e4d
mov rcx, rax
call fcn.14003e8e0
mov r15, rax
mov rdx, rbx
mov rcx, r15
call fcn.1400464e0
mov r8, rbx
mov rdx, rsi
mov rcx, qword [r15 + 0x80]
call fcn.140284ff0
lea rdx, str.buf_data
lea rcx, [rbp - 9]
call fcn.14001c950
nop
mov r8, r15
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.1400424f0
nop
lea rcx, [rbp - 9]
call fcn.14001d440
nop
test rsi, rsi
je 0x140093367
mov rcx, rsi
cmp r12, 1
jne 0x140092c99
mov rdx, r12
call fcn.140283144
jmp 0x140093367
lea rdx, str.socket.close
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092ef9
mov edx, 2
mov rcx, rdi
call fcn.14006e150
mov rcx, qword [rdi + 0x40]
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_closesocket]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.get_error
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140092f2a
mov rcx, rdi
call fcn.14006e4c0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.connect
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140093139
mov esi, 2
mov r9d, esi
lea r8d, [rsi - 1]
mov edx, esi
mov rcx, rdi
call fcn.14006e1d0
lea rcx, [rbp - 0x41]
call fcn.14001cac0
nop
mov rcx, qword [rdi + 0x40]
add rcx, 0xf0
call fcn.140026430
test al, al
jne 0x14009305a
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x61], xmm0
xor r15d, r15d
mov qword [rbp - 0x51], r15
mov rdx, qword [rdi + 0x40]
add rdx, 0xf0
lea rcx, [rbp - 0x61]
call fcn.1400319c0
mov r15, qword [rbp - 0x59]
mov rcx, r15
mov rbx, qword [rbp - 0x61]
sub rcx, rbx
movabs r12, 0x6666666666666667
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140092fde
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.14001d690
mov r15, qword [rbp - 0x59]
mov rbx, qword [rbp - 0x61]
test rbx, rbx
je 0x14009306e
cmp rbx, r15
je 0x140093008
nop dword [rax]
mov r8, qword [rbx]
xor edx, edx
mov rcx, rbx
call qword [r8]
add rbx, 0x28
cmp rbx, r15
jne 0x140092ff0
mov rbx, qword [rbp - 0x61]
mov rcx, qword [rbp - 0x51]
sub rcx, rbx
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rbx
cmp rdx, 0x1000
jb 0x140093050
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093391
mov rcx, rbx
call fcn.140283144
jmp 0x14009306e
mov rdx, qword [rdi + 0x40]
add rdx, 0xf0
lea rcx, [rbp - 0x41]
call fcn.14001d690
lea rcx, [rbp - 0x41]
call fcn.14001f680
test al, al
je 0x14009308a
mov rdx, 0xfffffffffffffffe
mov rcx, r14
call fcn.1400427c0
mov word [rbp - 0x19], si
xor r8d, r8d
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 0x41]
call fcn.140022e40
cmp qword [rax + 0x18], 0x10
jb 0x1400930a8
mov rax, qword [rax]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rbp - 0x15], eax
mov rdx, qword [rbp - 0x49]
cmp rdx, 0x10
jb 0x1400930ef
inc rdx
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400930ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093397
call fcn.140283144
mov rax, qword [rdi + 0x40]
movzx ecx, word [rax + 0x1b0]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x17], ax
mov rcx, qword [rdi + 0x40]
mov r8d, reloc.ODBC32.dll_SQLFreeStmt
lea rdx, [rbp - 0x19]
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_connect]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
jmp 0x140093367
lea rdx, str.socket.bind
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140093216
mov esi, 2
mov r9d, esi
lea r8d, [rsi - 1]
mov edx, esi
mov rcx, rdi
call fcn.14006e1d0
xor r15d, r15d
mov qword [rbp - 0x69], r15
mov word [rbp - 0x71], si
mov rax, qword [rdi + 0x40]
movzx ecx, word [rax + 0x1b0]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x6f], ax
mov rcx, qword [rdi + 0x40]
add rcx, 0xf0
lea rdx, [rbp - 0x61]
call fcn.140022ea0
cmp qword [rax + 0x18], 0x10
jb 0x1400931a4
mov rax, qword [rax]
mov rcx, rax
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rbp - 0x6d], eax
mov rdx, qword [rbp - 0x49]
cmp rdx, 0x10
jb 0x1400931eb
inc rdx
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400931e6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093385
call fcn.140283144
mov rcx, qword [rdi + 0x40]
mov r8d, reloc.ODBC32.dll_SQLFreeStmt
lea rdx, [rbp - 0x71]
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_bind]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.listen
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x14009325c
mov edx, 2
mov rcx, rdi
call fcn.14006e150
mov rcx, qword [rdi + 0x40]
mov edx, 0x64
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_listen]
movsxd rdx, eax
mov rcx, r14
call fcn.1400427c0
jmp 0x140093367
lea rdx, str.socket.accept
mov rcx, rbx
call fcn.14001d8d0
test al, al
je 0x140093364
mov edx, 2
mov rcx, rdi
call fcn.14006e150
mov dword [rbp - 0x19], reloc.ODBC32.dll_SQLFreeStmt
mov rcx, r14
call fcn.140046960
mov rcx, qword [rdi + 0x40]
lea r8, [rbp - 0x19]
lea rdx, [rsp + 0x38]
mov rcx, qword [rcx + 0x80]
call qword [sym.imp.WS2_32.dll_accept]
mov rbx, rax
lea rdx, str.i_socket
lea rcx, [rbp - 9]
call fcn.14001c950
nop
mov r8, rbx
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.140041d70
nop
lea rcx, [rbp - 9]
call fcn.14001d440
cmp rbx, 0xffffffffffffffff
je 0x140093367
mov ecx, dword [rbp - 0x7d]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov rdx, rax
lea rcx, [rbp - 0x41]
call fcn.14001c840
nop
movzx ecx, word [rbp - 0x7f]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ebx, ax
lea rdx, str.i_peer_port
lea rcx, [rbp - 9]
call fcn.14001c950
nop
mov r8d, ebx
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.140041d70
nop
lea rcx, [rbp - 9]
call fcn.14001d440
lea rdx, str.str_peer_ip
lea rcx, [rbp - 9]
call fcn.14001c950
nop
lea r8, [rbp - 0x41]
lea rdx, [rbp - 9]
mov rcx, r14
call fcn.1400425c0
nop
lea rcx, [rbp - 9]
call fcn.14001d440
nop
lea rcx, [rbp - 0x41]
call fcn.14001d440
jmp 0x140093367
mov byte [rsi], 0
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140283120
add rsp, 0xe0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140287d84
int3
call fcn.140287d84
nop
call fcn.140287d84
nop
call fcn.140287d84
int3