Function at 0x412eb0
Capabilities:
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
sub esp, 0xc
push ebx
mov ebx, ecx
push ebp
push esi
push edi
mov eax, dword [ebx + 0x28]
test eax, eax
jne 0x412ec8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [eax + 0x38]
mov eax, ecx
mov dword [esp + 0x10], ecx
mov dword [ebx + 0x28], 0
test ecx, ecx
je 0x41359f
mov esi, eax
xor edx, edx
mov eax, dword [eax + 0x38]
cmp eax, ecx
cmovne edx, eax
mov eax, dword [esi + 4]
add eax, 0xfffffffe
mov dword [esp + 0x18], edx
cmp eax, 0xf
ja case.0x412eff.6
jmp dword [eax*4 + 0x4135b8]
mov edx, dword [esi]
mov eax, dword [edx + 8]
sub eax, 7
je 0x412f38
sub eax, 5
je 0x412f2b
sub eax, 2
jne case.0x412eff.6
push esi
mov ecx, ebx
call fcn.00415470
jmp 0x41358c
push esi
mov ecx, ebx
call fcn.0041b6d0
jmp 0x41358c
push esi
mov ecx, ebx
call fcn.0041e380
jmp 0x41358c
mov edi, dword [esi + 0x44]
mov eax, dword [edi + 8]
sub eax, 7
je 0x41302f
sub eax, 5
je 0x413020
sub eax, 2
jne case.0x412eff.6
mov eax, dword [esi + 0x34]
sub dword [edi + 0x30], eax
add dword [edi + 0x40], 0xffffffff
jne 0x412f8d
mov eax, dword [edi + 0x2c]
test al, 1
jne 0x412f8d
test al, 0x40
je 0x412f8d
and eax, 0xffffffbf
mov dword [edi + 0x2c], eax
test al, 0x20
je 0x412f8d
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
cmp dword [esi + 0x3c], 0
je 0x412fbe
push dword [esi + 0x20]
call dword [0x4b0818]
mov ecx, eax
call fcn.0041c770
push eax
mov eax, dword [esi + 0x3c]
push esi
call eax
add esp, 8
dec dword [edi + 0x88]
cmp dword [edi + 0x8c], 0
je 0x412fec
cmp dword [edi + 0x88], 0
jne 0x412fec
mov eax, dword [edi + 0x2c]
test al, 8
jne 0x412fec
or eax, 8
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x28], eax
mov dword [ebx + 0x2c], edi
dec dword [edi + 0x3c]
mov eax, dword [edi + 0x2c]
test al, 1
je 0x41358f
cmp dword [edi + 0x3c], 0
jne 0x41358f
test al, 8
jne 0x41358f
or eax, 8
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x28], eax
mov dword [ebx + 0x2c], edi
jmp 0x41358f
push esi
mov edx, edi
mov ecx, ebx
call fcn.0041b9b0
jmp 0x41358c
push esi
mov edx, edi
mov ecx, ebx
call fcn.0041e670
jmp 0x41358c
mov edi, dword [esi]
mov eax, dword [edi + 8]
sub eax, 7
je 0x41311c
sub eax, 5
je 0x41305f
sub eax, 2
jne case.0x412eff.6
jmp 0x4135ac
mov ecx, dword [esi + 0x3c]
cmp ecx, 0xffffffff
jne 0x4130c0
mov eax, dword [edi + 0x2c]
test eax, 0x800
je 0x41317f
and eax, 0xfffff7ff
add dword [edi + 0x40], ecx
mov dword [edi + 0x2c], eax
jne 0x41309a
test al, 1
jne 0x41309a
test al, 0x40
je 0x41309a
and eax, 0xffffffbf
mov dword [edi + 0x2c], eax
test al, 0x20
je 0x41309a
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ebp, dword [edi + 0x88]
test ebp, ebp
je 0x41317f
mov ecx, dword [esi + 0x20]
call fcn.0041fcd0
mov ecx, eax
call fcn.0041c770
push eax
push edi
call ebp
jmp 0x41317c
cmp dword [esi + 0x20], 0
jl 0x4130f8
push 4
lea eax, [edi + 0x90]
push eax
push 0x700b
push 0xffff
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x4130f8
mov eax, dword [edi + 0xa0]
mov dword [esi + 0x168], eax
mov dword [edi + 0xa0], esi
jmp 0x413144
push dword [esi + 0x3c]
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esi + 0x3c], 0xffffffff
test dword [edi + 0x2c], 0x800
je 0x41317f
mov edx, esi
mov ecx, edi
call fcn.0041b090
jmp 0x41317f
mov eax, dword [edi + 0x2c]
test al, 1
je 0x41312f
add dword [edi + 0x3c], 0xffffffff
jne case.0x412eff.6
jmp 0x41319b
cmp dword [esi + 0x20], 0
jl 0x413155
mov eax, dword [edi + 0xa8]
mov dword [esi + 0x40], eax
mov dword [edi + 0xa8], esi
mov eax, dword [edi + 0x88]
test eax, eax
je 0x41317f
push 0
push edi
call eax
jmp 0x41317c
mov eax, dword [esi + 0x3c]
cmp eax, 0xffffffff
je 0x41316b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x3c], 0xffffffff
test byte [edi + 0x2c], 1
jne 0x41317f
push ecx
push esi
mov edx, edi
mov ecx, ebx
call fcn.0041de00
add esp, 8
dec dword [edi + 0x3c]
mov eax, dword [edi + 0x2c]
test al, 1
je 0x41358f
cmp dword [edi + 0x3c], 0
jne 0x41358f
mov ecx, dword [esp + 0x10]
test al, 8
jne case.0x412eff.6
or eax, 8
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x28], eax
mov dword [ebx + 0x2c], edi
jmp case.0x412eff.6
mov edi, dword [esi + 0x40]
mov eax, dword [edi + 8]
sub eax, 7
je 0x41327f
sub eax, 5
je 0x4131d9
sub eax, 2
jne case.0x412eff.6
jmp 0x4135b2
add dword [edi + 0x40], 0xffffffff
jne 0x4131fa
mov eax, dword [edi + 0x2c]
test al, 1
jne 0x4131fa
test al, 0x40
je 0x4131fa
and eax, 0xffffffbf
mov dword [edi + 0x2c], eax
test al, 0x20
je 0x4131fa
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ecx, dword [esi + 0xc]
xor ebp, ebp
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
js 0x413278
push ebp
push ebp
push 0x7010
push 0xffff
push dword [edi + 0x90]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x413270
or dword [edi + 0x2c], 0x19000
mov ecx, ebp
mov dword [edi + 0x88], ebp
mov dword [edi + 0x48], 0xe
mov dword [edi + 0x64], ebp
mov dword [edi + 0x80], ebp
mov dword [edi + 0x84], 0xffffffff
mov dword [edi + 0x44], edi
inc dword [ebx + 0x58]
call fcn.0041c770
push eax
mov eax, dword [esi + 0x3c]
push esi
call eax
jmp 0x41317c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x4132e5
call fcn.0041fcd0
jmp 0x4132e5
add dword [edi + 0x40], 0xffffffff
jne 0x4132a0
mov eax, dword [edi + 0x2c]
test al, 1
jne 0x4132a0
test al, 0x40
je 0x4132a0
and eax, 0xffffffbf
mov dword [edi + 0x2c], eax
test al, 0x20
je 0x4132a0
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
cmp dword [esi + 0x3c], 0
je 0x41317f
mov eax, dword [esi + 0x20]
xor ebp, ebp
test eax, eax
js 0x4132de
mov ecx, edi
call fcn.0041d770
mov ecx, ebp
call fcn.0041c770
push eax
mov eax, dword [esi + 0x3c]
push esi
call eax
jmp 0x41317c
push eax
call dword [0x4b0818]
mov ebp, eax
mov ecx, ebp
call fcn.0041c770
push eax
mov eax, dword [esi + 0x3c]
push esi
call eax
jmp 0x41317c
mov edx, dword [esi + 0x3c]
mov ecx, ebx
push esi
call fcn.0041e7b0
jmp 0x41358c
mov edx, dword [esi]
mov ecx, ebx
push esi
call fcn.0041cd90
jmp 0x41358c
mov edi, dword [esi + 0x3c]
mov eax, dword [esi + 0x34]
sub dword [edi + 0x30], eax
dec dword [edi + 0x34]
add dword [edi + 0x40], 0xffffffff
jne 0x413346
mov eax, dword [edi + 0x2c]
test al, 1
jne 0x413346
test al, 0x40
je 0x413346
and eax, 0xffffffbf
mov dword [edi + 0x2c], eax
test al, 0x20
je 0x413346
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov ebp, dword [esi + 0x40]
test ebp, ebp
je 0x41317f
mov ecx, dword [esi + 0x20]
xor eax, eax
test ecx, ecx
jns 0x413370
call fcn.0041fcd0
mov ecx, eax
call fcn.0041c770
push eax
push esi
call ebp
jmp 0x41317c
mov ecx, dword [esi]
mov eax, dword [ecx + 0x2c]
mov byte [ecx + 0x70], 0
test al, 1
je 0x4133a9
test al, 8
jne 0x41358f
or eax, 8
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0x2c]
mov dword [ecx + 0x28], eax
mov dword [ebx + 0x2c], ecx
jmp 0x41358f
mov eax, dword [ecx + 0x6c]
test eax, eax
je 0x41358f
push ecx
call eax
jmp 0x41358c
mov esi, dword [esi]
xor ecx, ecx
lea eax, [esi + 0x84]
xchg dword [eax], ecx
cmp ecx, dword [esi + 0x34]
jne 0x4133d7
mov eax, dword [esi + 0x30]
push ecx
push esi
call eax
add esp, 8
test dword [esi + 0x2c], 0x100
je 0x4133e7
mov ecx, esi
call fcn.00412aa0
mov ecx, dword [esi + 0x2c]
mov eax, ecx
and al, 9
cmp al, 1
jne 0x41358f
or ecx, 8
mov dword [esi + 0x2c], ecx
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x28], eax
mov dword [ebx + 0x2c], esi
jmp 0x41358f
mov edi, dword [esi]
test dword [edi + 0x2c], 0x2000000
jne 0x413424
push esi
mov edx, edi
mov ecx, ebx
call fcn.0041ebc0
jmp 0x41358c
lea eax, [edi + 0x80]
cmp esi, eax
jne 0x41343d
mov al, byte [edi + 0xfa]
mov byte [edi + 0xf8], 0
jmp 0x413458
lea eax, [edi + 0xbc]
cmp esi, eax
jne case.0x412eff.6
mov al, byte [edi + 0xfb]
mov byte [edi + 0xf9], 0
mov ecx, dword [esi + 0x20]
test ecx, ecx
jns 0x413482
cmp byte [edi + 0xfc], 0
je 0x4134a3
push ecx
call dword [0x4b0818]
push 0
mov ecx, eax
mov byte [edi + 0xfc], 0
call fcn.0041c770
push eax
jmp 0x41349a
mov ecx, dword [esi + 0x24]
movzx eax, al
not eax
and ecx, eax
movzx eax, byte [edi + 0xfc]
and ecx, eax
je 0x4134a3
push ecx
push 0
mov eax, dword [edi + 0x30]
push edi
call eax
add esp, 0xc
mov dh, byte [edi + 0xf9]
mov dl, byte [edi + 0xf8]
movzx ecx, dl
movzx eax, dh
or ecx, eax
not ecx
test byte [edi + 0xfc], cl
je 0x4134cf
mov edx, edi
mov ecx, ebx
call fcn.0041ee70
jmp 0x41358f
mov eax, dword [edi + 0x2c]
test al, 1
je 0x41358f
test dl, dl
jne 0x41358f
test dh, dh
jmp 0x413191
mov esi, dword [esi]
mov eax, dword [esi + 0x2c]
mov byte [esi + 0x84], 0
test al, 1
je 0x413515
test al, 8
jne case.0x412eff.6
or eax, 8
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x28], eax
mov dword [ebx + 0x2c], esi
jmp case.0x412eff.6
mov eax, dword [esi + 0x7c]
cmp eax, 0xffffffff
je 0x41352b
push eax
call dword [sym.imp.KERNEL32.dll_UnregisterWait]
mov dword [esi + 0x7c], 0xffffffff
mov eax, dword [esi + 0x2c]
test al, 0x40
je 0x413542
and eax, 0xffffffbf
mov dword [esi + 0x2c], eax
test al, 0x20
je 0x413542
mov eax, dword [esi + 4]
dec dword [eax + 4]
lea eax, [esp + 0x14]
push eax
push dword [esi + 0x80]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x41355f
mov eax, dword [esp + 0x14]
xor edx, edx
jmp 0x41356d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.0041c770
cdq
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x41358f
push dword [esi + 0x78]
push edx
push eax
push esi
call ecx
add esp, 0x10
jmp 0x41358f
push dword [esi]
mov edx, esi
mov ecx, ebx
call fcn.0041f0c0
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x412ee0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret
push ecx
call fcn.004176a0
push ecx
call fcn.004176a0
mov bh, 0x31
inc ecx
add byte [ebp + 0x2f], al
inc ecx
add dl, bh
xor al, byte [ecx]
sbb dword [ebx], esi
inc ecx
add byte [ebx - 0x6cffbecb], dl
xor eax, 0x35930041
inc ecx
add byte [ebx + 0x3e004135], dl
xor byte [ecx], al
xor dword [0x340a0041], 0x34e90041
inc ecx
add byte [esi], al
das
inc ecx
add byte [edx], cl
xor eax, dword [ecx]
xor byte [ebx], 0x41
add byte [ebx + esi - 859045823], bh
int3