Function at 0x100096ba
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
mov esi, edx
mov dword [esp + 0xc], 0x10
mov ebp, ecx
mov dword [esp + 0x14], esi
push edi
mov ecx, 0xb8e4
call fcn.1001cda8
mov ebx, eax
xor edi, edi
lea eax, [ebx + 0xb8cc]
mov dword [ebx], ebp
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x48], 1
mov dword [ebx + 4], ebp
inc dword [ebp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], fcn.1000cef0
cmp dword [esp + 0x40], edi
jne 0x10009955
lea eax, [esp + 0x10]
mov dword [esp + 0x14], 1
push eax
lea eax, [esp + 0x30]
push eax
push esi
call dword [sym.imp.WS2_32.dll_getpeername]
push 0x10
pop ecx
call fcn.1001cda8
mov esi, dword [sym.imp.WS2_32.dll_inet_ntoa]
mov dword [ebx + 0x18], eax
push dword [esp + 0x30]
call esi
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000974a
push dword [esp + 0x30]
sub ecx, edx
mov dword [esp + 0x44], ecx
call esi
mov edi, dword [ebx + 0x18]
mov esi, eax
mov ecx, dword [esp + 0x40]
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.1000964a
mov ecx, eax
call fcn.1000968f
test eax, eax
jne 0x10009771
call fcn.100096b0
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x14]
push 4
push eax
push 1
push 6
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x100097aa
push esi
lfence
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp 0x100099c3
mov eax, dword [ebp + 0x190]
cmp eax, 0x40
jae 0x100097c2
mov dword [ebp + eax*4 + 0x194], esi
inc dword [ebp + 0x190]
mov eax, dword [ebp + 0x18c]
cmp esi, eax
push 0x30
cmovg eax, esi
xor esi, esi
mov dword [ebp + 0x18c], eax
or dword [ebx + 0x38], 0xffffffff
pop eax
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x78a0], esi
call fcn.10010074
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x68], esi
lea esi, [ebx + 0xb8cc]
push esi
mov dword [ebx + 0x60], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebp + 0x10]
xor edx, edx
xor ecx, ecx
push dword [ebp + 8]
call fcn.10010079
pop ecx
pop ecx
push esi
mov dword [ebx + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.10010074
mov esi, dword [ebx]
lea edi, [ebx + 0x98]
add esi, 0x2c
mov dword [ebx + 0x70], eax
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x90], 0x1001253e
mov dword [ebx + 0x94], ecx
mov eax, dword [ebp + 0x2e4]
mov dword [ebx + 0x789c], eax
mov dword [ebx + 0x7898], ecx
mov eax, dword [ebp + 0x2e4]
test eax, eax
je 0x10009875
mov dword [eax + 0x7898], ebx
mov dword [ebp + 0x2e4], ebx
lea edi, [esp + 0x1c]
or edx, 0xffffffff
mov dword [ebx + 0x7874], ecx
mov dword [ebx + 0x762c], edx
mov esi, str.RFB_003.006_n
mov dword [ebx + 0x7638], edx
mov dword [ebx + 0x7878], ecx
mov dword [ebx + 0x787c], ecx
mov dword [ebx + 0x7870], ecx
mov dword [ebx + 0x786c], ecx
mov dword [ebx + 0x7860], ecx
mov dword [ebx + 0x7864], ecx
mov dword [ebx + 0x7868], ecx
mov dword [ebx + 0x785c], edx
mov eax, dword [ebp + 0x2ec]
mov dword [ebx + 0x7888], eax
mov eax, dword [ebp + 0x2f0]
mov dword [ebx + 0x7890], ecx
mov dword [ebx + 0x7624], ecx
mov dword [ebx + 0x75f4], ecx
mov dword [ebx + 0x7600], ecx
mov dword [ebx + 0x760c], ecx
mov dword [ebx + 0x7610], ecx
mov dword [ebx + 0x7614], ecx
mov dword [ebx + 0xb8a8], ecx
mov dword [ebx + 0xb8ac], ecx
mov ecx, ebx
mov dword [ebx + 0x84], edx
lea edx, [esp + 0x1c]
mov dword [ebx + 0x788c], eax
mov dword [ebx + 0x7628], 5
movsd dword es:[edi], dword [esi]
push 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
call fcn.1000f83c
pop ecx
test eax, eax
jns 0x10009953
mov ecx, ebx
lfence
call fcn.1000f51d
mov ecx, ebx
call fcn.100099ed
jmp 0x100097a3
xor edi, edi
call fcn.1000cd83
mov esi, eax
jmp 0x10009987
mov eax, dword [esi]
mov dword [esp + 0x40], edi
test eax, eax
je 0x10009984
lea ecx, [esp + 0x40]
push ecx
push ebx
call eax
pop ecx
pop ecx
test eax, eax
je 0x10009984
push dword [esp + 0x40]
mov edx, esi
mov ecx, ebx
call fcn.1000cd9b
pop ecx
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x1000995e
mov eax, dword [ebx]
push ebx
call dword [eax + 0x330]
pop ecx
sub eax, edi
je 0x100099be
sub eax, 1
je 0x100099b5
sub eax, 1
jne 0x100099c1
mov ecx, ebx
call fcn.1000f51d
mov ecx, ebx
call fcn.100099ed
mov ebx, edi
jmp 0x100099c1
mov dword [ebx + 0x2c], 1
jmp 0x100099c1
mov dword [ebx + 0x2c], edi
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret