Function at 0x14003ca70
Capabilities:
Set socket configuration

Disassembly:
push rdi
sub rsp, 0x50
mov rax, qword [rcx + 0x48]
mov rdi, rcx
test rax, rax
jne 0x14003ca88
add rsp, 0x50
pop rdi
ret
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
mov r15, qword [rax + 0x68]
mov qword [rcx + 0x48], 0
mov r14, r15
test r15, r15
je 0x14003d11c
lea r13, [0x140000000]
nop word [rax + rax]
mov rax, qword [r14 + 0x68]
mov rbx, r14
xor r14d, r14d
cmp rax, r15
cmovne r14, rax
mov eax, dword [rbx + 8]
add eax, 0xfffffffe
cmp eax, 0xf
ja case.0x14003cafd.6
cdqe
mov ecx, dword [r13 + rax*4 + 0x3d154]
add rcx, r13
jmp rcx
mov rdx, qword [rbx]
mov eax, dword [rdx + 0x10]
cmp eax, 7
je 0x14003cb4b
cmp eax, 0xc
je 0x14003cb3b
cmp eax, 0xe
jne case.0x14003cafd.6
cmp dword [rdx + 0x120], 0
mov r8, rbx
mov rcx, rdi
jne 0x14003cb31
call fcn.14003f130
jmp case.0x14003cafd.6
call fcn.14003f6f0
jmp case.0x14003cafd.6
mov r8, rbx
mov rcx, rdi
call fcn.1400478e0
jmp case.0x14003cafd.6
mov r8, rbx
mov rcx, rdi
call fcn.14004a9c0
jmp case.0x14003cafd.6
mov rsi, qword [rbx + 0x80]
mov eax, dword [rsi + 0x10]
cmp eax, 7
je 0x14003cc25
cmp eax, 0xc
je 0x14003cc12
cmp eax, 0xe
jne case.0x14003cafd.6
mov rax, qword [rbx + 0x60]
sub qword [rsi + 0x60], rax
sub dword [rsi + 0x7c], 1
jne 0x14003cbaa
mov eax, dword [rsi + 0x58]
test al, 1
jne 0x14003cbaa
test al, 0x40
je 0x14003cbaa
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x14003cbaa
mov rax, qword [rsi + 8]
dec dword [rax + 8]
dec dword [rdi + 0x20]
cmp qword [rbx + 0x70], 0
je 0x14003cbcc
mov ecx, dword [rbx + 0x40]
call qword [0x1400cdaa8]
mov ecx, eax
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
mov eax, dword [rsi + 0x100]
dec eax
cmp qword [rsi + 0x108], 0
mov dword [rsi + 0x100], eax
je 0x14003ccd0
test eax, eax
jne 0x14003ccd0
mov eax, dword [rsi + 0x58]
test al, 8
jne 0x14003ccd0
or eax, 8
mov dword [rsi + 0x58], eax
mov rax, qword [rdi + 0x50]
mov qword [rsi + 0x50], rax
mov qword [rdi + 0x50], rsi
jmp 0x14003ccd0
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.140047bf0
jmp case.0x14003cafd.6
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.14004ada0
jmp case.0x14003cafd.6
mov rsi, qword [rbx]
mov eax, dword [rsi + 0x10]
cmp eax, 7
je 0x14003cc69
cmp eax, 0xc
je 0x14003cc56
cmp eax, 0xe
je 0x14003d145
jmp case.0x14003cafd.6
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.140047d20
jmp case.0x14003cafd.6
mov eax, dword [rsi + 0x58]
test al, 1
je 0x14003cc76
add dword [rsi + 0x78], 0xffffffff
jmp 0x14003cce5
cmp dword [rbx + 0x40], 0
jl 0x14003cca3
mov rax, qword [rsi + 0x138]
mov qword [rbx + 0x78], rax
mov rax, qword [rsi + 0x100]
mov qword [rsi + 0x138], rbx
test rax, rax
je 0x14003ccd0
xor edx, edx
mov rcx, rsi
call rax
jmp 0x14003ccd0
mov rcx, qword [rbx + 0x70]
cmp rcx, 0xffffffffffffffff
je 0x14003ccbe
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x70], 0xffffffffffffffff
mov eax, dword [rsi + 0x58]
test al, 1
jne 0x14003ccd0
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.14004a2b0
mov ecx, dword [rsi + 0x78]
dec ecx
mov dword [rsi + 0x78], ecx
mov eax, dword [rsi + 0x58]
test al, 1
je case.0x14003cafd.6
test ecx, ecx
jne case.0x14003cafd.6
test al, 8
jne case.0x14003cafd.6
or eax, 8
mov dword [rsi + 0x58], eax
mov rax, qword [rdi + 0x50]
mov qword [rsi + 0x50], rax
mov qword [rdi + 0x50], rsi
jmp case.0x14003cafd.6
mov rsi, qword [rbx + 0x78]
mov eax, dword [rsi + 0x10]
cmp eax, 7
je 0x14003cde1
cmp eax, 0xc
je 0x14003cd2d
cmp eax, 0xe
je 0x14003d14b
jmp case.0x14003cafd.6
sub dword [rsi + 0x7c], 1
jne 0x14003cd4f
mov eax, dword [rsi + 0x58]
test al, 1
jne 0x14003cd4f
test al, 0x40
je 0x14003cd4f
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x14003cd4f
mov rax, qword [rsi + 8]
dec dword [rax + 8]
dec dword [rdi + 0x20]
xor ebp, ebp
mov ecx, dword [rbx + 0x40]
test ecx, ecx
js 0x14003cdc6
test byte [rsi + 0x58], 1
je 0x14003cd7a
mov ebp, 0x3e3
mov ecx, ebp
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
jmp 0x14003ccd0
mov rcx, qword [rsi + 0x110]
xor r9d, r9d
mov edx, 0xffff
mov dword [rsp + 0x20], ebp
mov r8d, 0x7010
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x14003cdbe
or dword [rsi + 0x58], 0x19000
mov ecx, ebp
inc dword [rdi + 0xa8]
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
jmp 0x14003ccd0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x14003cdcb
call fcn.14004c4c0
mov ecx, eax
mov ebp, eax
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
jmp 0x14003ccd0
sub dword [rsi + 0x7c], 1
jne 0x14003ce03
mov eax, dword [rsi + 0x58]
test al, 1
jne 0x14003ce03
test al, 0x40
je 0x14003ce03
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x14003ce03
mov rax, qword [rsi + 8]
dec dword [rax + 8]
dec dword [rdi + 0x20]
cmp qword [rbx + 0x70], 0
je 0x14003ccd0
mov ecx, dword [rbx + 0x40]
xor ebp, ebp
test ecx, ecx
js 0x14003ce36
mov rcx, rsi
call fcn.140049a80
mov ecx, ebp
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
jmp 0x14003ccd0
call qword [0x1400cdaa8]
mov ecx, eax
mov ebp, eax
call fcn.140049560
mov edx, eax
mov rcx, rbx
call qword [rbx + reloc.WS2_32.dll_WSASetLastError]
jmp 0x14003ccd0
mov rdx, qword [rbx + 0x70]
mov r8, rbx
mov rcx, rdi
call fcn.14004af10
jmp case.0x14003cafd.6
mov rdx, qword [rbx]
mov r8, rbx
mov rcx, rdi
call fcn.140048980
jmp case.0x14003cafd.6
mov rsi, qword [rbx + 0x70]
mov rax, qword [rbx + 0x60]
sub qword [rsi + 0x60], rax
dec qword [rsi + 0x68]
sub dword [rsi + 0x7c], 1
jne 0x14003ceab
mov eax, dword [rsi + 0x58]
test al, 1
jne 0x14003ceab
test al, 0x40
je 0x14003ceab
and eax, 0xffffffbf
mov dword [rsi + 0x58], eax
test al, 0x20
je 0x14003ceab
mov rax, qword [rsi + 8]
dec dword [rax + 8]
dec dword [rdi + 0x20]
mov r9, qword [rbx + 0x78]
test r9, r9
je 0x14003ccd0
mov ecx, dword [rbx + 0x40]
xor eax, eax
test ecx, ecx
jns 0x14003cec9
call fcn.14004c4c0
mov ecx, eax
call fcn.140049560
mov edx, eax
mov rcx, rbx
call r9
jmp 0x14003ccd0
mov rcx, qword [rbx]
mov eax, dword [rcx + 0x58]
mov byte [rcx + 0xd8], 0
test al, 1
je 0x14003cf0d
test al, 8
jne case.0x14003cafd.6
or eax, 8
mov dword [rcx + 0x58], eax
mov rax, qword [rdi + 0x50]
mov qword [rcx + 0x50], rax
mov qword [rdi + 0x50], rcx
jmp case.0x14003cafd.6
mov rax, qword [rcx + 0xd0]
test rax, rax
je case.0x14003cafd.6
call rax
jmp case.0x14003cafd.6
mov rbx, qword [rbx]
xor edx, edx
xchg dword [rbx + 0x100], edx
cmp edx, dword [rbx + 0x68]
jne 0x14003cf3a
mov rcx, rbx
call qword [rbx + 0x60]
mov ecx, dword [rbx + 0x58]
bt ecx, 8
jae 0x14003cf4e
mov rcx, rbx
call fcn.14003c560
mov ecx, dword [rbx + 0x58]
mov eax, ecx
and al, 9
cmp al, 1
jne case.0x14003cafd.6
or ecx, 8
mov dword [rbx + 0x58], ecx
mov rax, qword [rdi + 0x50]
mov qword [rbx + 0x50], rax
mov qword [rdi + 0x50], rbx
jmp case.0x14003cafd.6
mov rsi, qword [rbx]
test dword [rsi + 0x58], 0x2000000
jne 0x14003cf90
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.14004b2e0
jmp case.0x14003cafd.6
lea rax, [rsi + 0xb8]
cmp rbx, rax
jne 0x14003cfac
movzx eax, byte [rsi + 0x19a]
mov byte [rsi + 0x198], 0
jmp 0x14003cfca
lea rax, [rsi + 0x128]
cmp rbx, rax
jne case.0x14003cafd.6
movzx eax, byte [rsi + 0x19b]
mov byte [rsi + 0x199], 0
mov ecx, dword [rbx + 0x40]
movzx edx, byte [rsi + 0x19c]
test ecx, ecx
jns 0x14003cff7
test dl, dl
je 0x14003d013
call qword [0x1400cdaa8]
mov ecx, eax
mov byte [rsi + 0x19c], 0
call fcn.140049560
mov edx, eax
xor r8d, r8d
jmp 0x14003d00d
mov r8d, dword [rbx + 0x48]
movzx eax, al
not eax
and r8d, eax
movzx eax, dl
and r8d, eax
je 0x14003d013
xor edx, edx
mov rcx, rsi
call qword [rsi + 0x60]
movzx edx, byte [rsi + 0x198]
movzx r8d, byte [rsi + 0x199]
mov ecx, edx
or ecx, r8d
not ecx
test byte [rsi + 0x19c], cl
je 0x14003d041
mov rdx, rsi
mov rcx, rdi
call fcn.14004b7d0
jmp case.0x14003cafd.6
mov eax, dword [rsi + 0x58]
test al, 1
je case.0x14003cafd.6
test dl, dl
jne case.0x14003cafd.6
test r8b, r8b
jmp 0x14003cce5
mov rbx, qword [rbx]
mov eax, dword [rbx + 0x58]
mov byte [rbx + 0x100], 0
test al, 1
je 0x14003d08c
test al, 8
jne case.0x14003cafd.6
or eax, 8
mov dword [rbx + 0x58], eax
mov rax, qword [rdi + 0x50]
mov qword [rbx + 0x50], rax
mov qword [rdi + 0x50], rbx
jmp case.0x14003cafd.6
mov rcx, qword [rbx + 0xf0]
cmp rcx, 0xffffffffffffffff
je 0x14003d0ad
call qword [sym.imp.KERNEL32.dll_UnregisterWait]
mov eax, dword [rbx + 0x58]
mov qword [rbx + 0xf0], 0xffffffffffffffff
test al, 0x40
je 0x14003d0c2
and eax, 0xffffffbf
mov dword [rbx + 0x58], eax
test al, 0x20
je 0x14003d0c2
mov rax, qword [rbx + 8]
dec dword [rax + 8]
mov rcx, qword [rbx + 0xf8]
lea rdx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x14003d0de
mov edx, dword [rsp + 0x60]
jmp 0x14003d0ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140049560
movsxd rdx, eax
mov rax, qword [rbx + 0x60]
test rax, rax
je case.0x14003cafd.6
mov r8d, dword [rbx + 0xe8]
mov rcx, rbx
call rax
jmp case.0x14003cafd.6
mov r8, qword [rbx]
mov rdx, rbx
mov rcx, rdi
call fcn.1400455c0
test r14, r14
jne 0x14003cad0
mov r14, qword [rsp + 0x38]
mov eax, 1
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x30]
add rsp, 0x50
pop rdi
ret
call fcn.140041b40
int3
call fcn.140041b40
int3