Function at 0x4063b0
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x29c
push esi
push edi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcA]
lea eax, [esp + 8]
push eax
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], 0x404
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
mov ecx, dword [esp + 0x2ac]
push ecx
push 0
mov ecx, 0x46c248
call fcn.00406710
mov eax, dword [0x46c24c]
lea edx, [esp + 0x10]
push 0x104
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x10]
push ecx
call esi
mov dl, byte [esp + eax + 0xf]
lea eax, [esp + eax + 0x10]
mov cl, 0x5c
cmp dl, cl
je 0x406438
mov dl, byte [eax - 2]
dec eax
cmp dl, cl
jne 0x406430
push ebx
push 0x46c22c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x14]
test edx, edx
jne 0x406451
xor ebx, ebx
jmp 0x40645a
lea eax, [esp + 0x14]
push eax
call esi
mov ebx, eax
mov edi, dword [0x46c2d8]
cmp dword [edi - 0xc], 1
jg 0x40646b
cmp ebx, dword [edi - 4]
jle 0x40648a
mov ecx, 0x46c2d8
call fcn.00402170
push ebx
mov ecx, 0x46c2d8
call fcn.00402070
test eax, eax
je 0x4064bd
mov edi, dword [0x46c2d8]
lea ecx, [ebx + 1]
cmp ecx, ebx
jb 0x4064b1
mov ecx, ebx
lea esi, [esp + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x46c2d8]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [edi - 8], ebx
mov eax, dword [0x46c2d8]
mov byte [ebx + eax], 0
lea ecx, [esp + 0x14]
test ecx, ecx
jne 0x4064c9
xor ebx, ebx
jmp 0x4064d2
lea edx, [esp + 0x14]
push edx
call esi
mov ebx, eax
mov edi, dword [0x46c2dc]
cmp dword [edi - 0xc], 1
jg 0x4064e3
cmp ebx, dword [edi - 4]
jle 0x406502
mov ecx, 0x46c2dc
call fcn.00402170
push ebx
mov ecx, 0x46c2dc
call fcn.00402070
test eax, eax
je 0x406535
mov edi, dword [0x46c2dc]
lea eax, [ebx + 1]
cmp eax, ebx
jb 0x406529
mov ecx, ebx
lea esi, [esp + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x46c2dc]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [edi - 8], ebx
mov eax, dword [0x46c2dc]
mov byte [ebx + eax], 0
mov ecx, 0x4661f0
pop ebx
test ecx, ecx
jne 0x406543
xor eax, eax
jmp 0x40654a
push 0x4661f0
call esi
push 0x4661f0
push eax
mov ecx, 0x46c2d8
call fcn.00409a60
lea edx, [esp + 0x114]
push edx
push 0x102
call sub.WSOCK32.dll_WSAStartup
test eax, eax
je 0x406582
call sub.WSOCK32.dll_WSACleanup
pop edi
xor eax, eax
pop esi
add esp, 0x29c
ret 0x10
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b0]
push eax
push ecx
call fcn.00404b60
add esp, 8
mov edi, eax
call sub.WSOCK32.dll_WSACleanup
mov edx, dword [0x46c118]
add edx, 0x1c
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x46c2d4]
test eax, eax
je 0x4065d1
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x4065d1
mov eax, dword [eax]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x46c2d4]
mov esi, eax
test esi, esi
je 0x4065e7
mov ecx, esi
call fcn.00406820
push esi
call fcn.00427e30
add esp, 4
mov edx, dword [0x46c118]
mov dword [0x46c2d4], 0
add edx, 0x1c
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x46c2d0]
test esi, esi
je 0x40661b
mov ecx, esi
call fcn.00407ec0
push esi
call fcn.00427e30
add esp, 4
push 0x46c248
call fcn.00406640
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
add esp, 0x29c
ret 0x10