Function at 0x4311e0
Capabilities:
Initialize winsock library
Read file on windows
Set current directory

Disassembly:
sub esp, 0x198
push ebx
push ebp
push esi
push edi
push 0x5c
push 0x17c0e00
call fcn.00409af0
add esp, 8
mov esi, eax
xor ebx, ebx
push 0x17c0e00
mov byte [esi], bl
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x440fa4
inc esi
push esi
call fcn.0040984a
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x431229
mov eax, str.Could_not_open_current_executable
call fcn.00419c40
push 2
push ebx
push esi
call fcn.0040a0a9
add esp, 0xc
push esi
call fcn.00409cb1
add esp, 4
push ebx
push ebx
push esi
mov edi, eax
call fcn.0040a0a9
add esp, 0xc
push edi
call fcn.0040934d
add esp, 4
push esi
push edi
mov ebp, eax
push 1
push ebp
call fcn.00409aab
add esp, 0x10
cmp edi, eax
je 0x43127a
push ebp
call fcn.004092d3
add esp, 4
mov eax, str.Could_not_open_current_executable
call fcn.00419c40
push esi
call fcn.0040a192
add esp, 4
lea eax, [esp + 0x10]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
call fcn.00435250
push ebp
mov dword [0x17d6224], eax
call fcn.004092d3
add esp, 4
call fcn.00428be0
call fcn.00422a30
test eax, eax
js 0x431347
call fcn.0042ff80
test eax, eax
jne 0x431347
call fcn.0041e6a0
mov eax, 0x471e7c
jmp 0x4312d0
mov dword [eax], ebx
add eax, 0x398
cmp eax, 0x47917c
jne 0x4312d0
lea eax, [esp + 0x18]
push eax
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x431347
mov eax, dword [esp + 0x18]
cmp al, 1
jne 0x431341
shr eax, 8
cmp al, 1
jne 0x431341
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov ecx, dword [esp + 0x1ac]
mov esi, dword [ecx]
cmp esi, ebx
je 0x4317c2
mov ecx, str.client.exe
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x431355
cmp dl, bl
je 0x43133d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x431355
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x431321
xor eax, eax
jmp 0x43135a
call dword [sym.imp.WS2_32.dll_WSACleanup]
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x198
ret
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4317c2
push 0xb
add esi, 6
push esi
push 0x17c0e00
call section..text
mov eax, 0x17c0e00
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x431380
sub eax, edx
cmp byte [eax + 0x17c0dff], 0x22
jne 0x431398
mov byte [eax + 0x17c0dff], bl
mov eax, 0x17c0e00
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4313a0
sub eax, edx
cmp byte [eax + 0x17c0dff], 0x2f
jne 0x4313b8
mov byte [eax + 0x17c0dff], bl
push 0xa
push ebx
push 0x17c0e00
call fcn.00409ff3
add esp, 0xc
push eax
call fcn.0041dba0
add esp, 4
test eax, eax
je 0x4313df
mov eax, str.Server_Connection_Failed:_Its_either_full_or_misconfigured
call fcn.00419c40
mov edx, dword [0x47b70c]
imul edx, dword [0x47aee4]
imul edx, edx, 0x1b
sar edx, 1
add edx, 7
and edx, 0xfffffff8
push edx
call fcn.0040934d
add esp, 4
mov dword [0x479700], eax
cmp eax, ebx
je 0x431347
push 0x440fa4
push str.png_knumb.png
mov dword [0x17c0dc0], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x43143d
push 0x160
push 0x18
push 0x17c0dc0
call fcn.00426490
add esp, 0xc
mov eax, dword [0x17c0dc0]
add eax, 0xc00
mov dword [0x17c0dc4], eax
add eax, 0xc00
mov dword [0x17c0dc8], eax
add eax, 0xc00
mov dword [0x17c0dcc], eax
add eax, 0xc00
mov dword [0x17c0dd0], eax
add eax, 0xc00
mov dword [0x17c0dd4], eax
add eax, 0xc00
mov dword [0x17c0dd8], eax
add eax, 0xc00
mov dword [0x17c0ddc], eax
add eax, 0xc00
mov dword [0x17c0de0], eax
add eax, 0xc00
mov dword [0x17c0de4], eax
add eax, 0xc00
push 0x440fa4
push str.png_indicator.png
mov dword [0x17c0de8], eax
mov dword [0x17be2b0], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x4314d6
push 0x28
push 0xc8
push 0x17be2b0
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_semi.png
mov dword [0x4465f0], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x431509
push 0x258
push 0x320
push 0x4465f0
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_smg.png
mov dword [0x446638], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x43153c
push 0x258
push 0x320
push 0x446638
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_shotgun.png
mov dword [0x446680], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x43156f
push 0x258
push 0x320
push 0x446680
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_target.png
mov dword [0x16a68c8], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x43159c
push 0x10
push 0x10
push 0x16a68c8
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_icon.png
mov dword [0x16a68c0], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x4315c9
push 7
push 7
push 0x16a68c0
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_icon.png
mov dword [0x17d619c], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x4315f6
push 7
push 7
push 0x17d619c
call fcn.00426490
add esp, 0xc
push 0x440fa4
push str.png_icon.png
mov dword [0x17be2ac], ebx
call fcn.0040984a
add esp, 8
cmp eax, ebx
je 0x431623
push 7
push 7
push 0x17be2ac
call fcn.00426490
add esp, 0xc
mov eax, 0xc
jmp 0x431630
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx - 0xc]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx - 0xc], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx - 0xc]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx - 0xc], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx - 8]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx - 8], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx - 8]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx - 8], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx - 4]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx - 4], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx - 4]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx - 4], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx + 4]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx + 4], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx + 4]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx + 4], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx + 8]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx + 8], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx + 8]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx + 8], edx
mov ecx, dword [0x16a68c0]
mov edx, dword [eax + ecx + 0xc]
and edx, 0xff00ffff
or edx, 0xffff
mov dword [eax + ecx + 0xc], edx
mov ecx, dword [0x17be2ac]
mov edx, dword [eax + ecx + 0xc]
and edx, 0xffff0000
or edx, 0xff0000
mov dword [eax + ecx + 0xc], edx
add eax, 0x1c
cmp eax, 0xd0
jl 0x431630
call fcn.00427050
call fcn.00427680
call fcn.00426cd0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x198
ret
mov eax, str.Error:_Visit_ace_spades.com_to_join_games_or_try_a_different_server
call fcn.00419c40
int3