Function at 0x410e90
Capabilities:
Create thread
Initialize winsock library

Disassembly:
sub esp, 0x2ac
mov eax, dword [0x481524]
xor eax, esp
mov dword [esp + 0x2a4], eax
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x18]
push eax
push 0x202
call sub.WS2_32.dll_WSAStartup
push 0x838
push 1
call fcn.0044bde0
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
jne 0x410eee
push str.cannot_allocate_mongoose_context
mov esi, 0x484af0
mov dword [0x484d20], eax
call fcn.00409e20
add esp, 4
xor eax, eax
jmp 0x411132
call fcn.00411160
call fcn.0044c9a6
add eax, 0x40
mov dword [edi + 0xc], eax
mov dword [edi + 0x834], 0x409e80
cmp dword [str.root], 0
je 0x410fc6
mov ebp, 0x472e90
mov ebx, dword [ebp]
test ebx, ebx
jne 0x410f25
xor edi, edi
jmp 0x410f6b
mov eax, ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410f30
sub eax, edx
lea esi, [eax + 1]
push esi
call fcn.0044c7be
mov edi, eax
add esp, 4
test edi, edi
je 0x410f6b
cmp byte [ebx], 0
mov ecx, edi
je 0x410f68
mov edx, ebx
sub edx, edi
cmp esi, 1
jbe 0x410f68
mov al, byte [edx + ecx]
mov byte [ecx], al
inc ecx
dec esi
cmp byte [edx + ecx], 0
jne 0x410f56
mov byte [ecx], 0
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
add ebp, 0x14
mov dword [edx + ecx*4 + 0x388], edi
cmp dword [ebp - 8], 0
jne 0x410f1a
cmp dword [str.root], 0
mov edi, edx
je 0x410fc6
mov esi, 0x472e98
mov ecx, dword [esi]
test ecx, ecx
je 0x410fbd
mov eax, dword [esi - 4]
cmp dword [edi + eax*4 + 0x388], 0
lea eax, [edi + eax*4 + 0x388]
je 0x410fbd
mov edx, dword [eax]
push edx
push edi
call ecx
add esp, 8
test eax, eax
je 0x41114b
add esi, 0x14
cmp dword [esi - 0x10], 0
jne 0x410f92
cmp dword [edi + 0x388], 0
jne 0x411096
lea esi, [esp + 0x1a8]
call fcn.0040a990
test eax, eax
jne 0x41103b
mov dword [0x484d20], edi
call fcn.0044d20b
mov eax, dword [eax]
push eax
call fcn.0044c8b0
add esp, 4
push eax
push str.mg_start
push str._s:_getcwd:__s
mov esi, 0x484af0
call fcn.00409e20
lea eax, [esp + 0x1b4]
mov ecx, 0x473280
mov edx, eax
add esp, 0xc
mov esi, 0x104
sub ecx, edx
cmp esi, 1
jbe 0x411038
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec esi
cmp byte [ecx + eax], 0
jne 0x411026
mov byte [eax], 0
lea eax, [esp + 0x1a8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411045
sub eax, edx
lea esi, [eax + 1]
push esi
call fcn.0044c7be
mov edi, eax
add esp, 4
test edi, edi
je 0x41108a
cmp byte [esp + 0x1a8], 0
mov ecx, edi
je 0x411087
lea edx, [esp + 0x1a8]
sub edx, edi
cmp esi, 1
jbe 0x411087
mov al, byte [edx + ecx]
mov byte [ecx], al
inc ecx
dec esi
cmp byte [edx + ecx], 0
jne 0x411075
mov byte [ecx], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x388], edi
mov edi, ecx
lea esi, [edi + 0x3e8]
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, 0x18
push 0
push 0
push 0
call edi
mov dword [esi], eax
add esi, 4
sub ebx, 1
jne 0x4110a7
push ebx
push ebx
push ebx
call edi
mov ebx, dword [esp + 0x14]
push 0
push 0
push 0
mov dword [ebx + 0x454], eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push 0
push 0
push 0
push 0
mov dword [ebx + 0x45c], eax
call esi
push 0
push 0
push 0
push 0
mov dword [ebx + 0x458], eax
call esi
push 0
push 0
push 0
push 0
mov dword [ebx + 0x828], eax
call esi
push 0
push 0
push ebx
push 0x410d70
push 0
push 0
mov dword [ebx + 0x82c], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x41112b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00411160
mov eax, ebx
mov ecx, dword [esp + 0x2b4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0044aab8
add esp, 0x2ac
ret
push edi
call fcn.0040fac0
add esp, 4
xor eax, eax
jmp 0x411132