Function at 0x401c20
Capabilities:
Create thread
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x554
mov eax, dword [0x41304c]
xor eax, esp
mov dword [esp + 0x550], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
lea ecx, [esp + 0x170]
push ecx
push 0x102
mov dword [0x413508], eax
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x401c6c
push 0x3a98
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00407f10
call fcn.00401e80
call fcn.00402350
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
xor ebx, ebx
push ebx
push ebx
push ebx
push 0x40ac60
push ebx
push ebx
call esi
call fcn.00408d10
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push 0x40a160
push ebx
push ebx
call esi
push ebx
push ebx
push ebx
push 0x40ad30
push ebx
push ebx
call esi
call fcn.00402350
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
push 0xc4
lea eax, [esp + 0x308]
push ebx
push eax
mov dword [esp + 0x30c], ebx
call sub.MSVCR90.dll_memset
lea eax, [esp + 0x20]
add esp, 0xc
mov edx, eax
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x401ce5
lea edi, [esp + 0x300]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
cmp cx, bx
jne 0x401d00
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esp, [esp]
cmp byte [0x415630], bl
je 0x401df7
lea esp, [esp]
push 0x1f
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x40f6f8
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
call fcn.004080a0
add esp, 0x20
test al, al
je 0x401de5
lea ecx, [esp + 0xc0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
push 0xc4
lea edx, [esp + 0x498]
push ebx
push edx
mov dword [esp + 0x49c], ebx
call sub.MSVCR90.dll_memset
lea eax, [esp + 0xd0]
add esp, 0xc
mov edx, eax
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x401d90
lea edi, [esp + 0x490]
sub eax, edx
add edi, 0xfffffffe
jmp 0x401db0
mov cx, word [edi + 2]
add edi, 2
cmp cx, bx
jne 0x401db0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4e20
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x415630], bl
jne 0x401d30
jmp 0x401df7
mov eax, dword [0x413528]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [0x415630], bl
lea ecx, [esp + 0x300]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
push 0xc4
lea edx, [esp + 0x3d0]
push ebx
push edx
mov dword [esp + 0x3d4], ebx
call sub.MSVCR90.dll_memset
lea eax, [esp + 0x310]
add esp, 0xc
mov edx, eax
jmp 0x401e30
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x401e30
lea edi, [esp + 0x3c8]
sub eax, edx
add edi, 0xfffffffe
jmp 0x401e50
mov cx, word [edi + 2]
add edi, 2
cmp cx, bx
jne 0x401e50
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4e20
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x401d20