Function at 0x40a965
Capabilities:
Create thread

Disassembly:
mov eax, 0x448034
call fcn.00425528
sub esp, 0xa4
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x28]
test al, al
jne 0x40ab65
mov di, word [ebp + 8]
test di, di
je 0x40ab65
cmp dword [esi + 0x816], 0xffffffff
mov ebx, 0x4a6c46
mov eax, dword [ebp + 0xc]
mov dword [ebp + 8], eax
jne 0x40a9c6
push dword [ebp + 0x14]
mov ecx, ebx
push 1
push eax
call fcn.004152a6
mov dword [esi + 0x816], eax
cmp eax, 0xffffffff
je 0x40ab65
push eax
mov ecx, ebx
call fcn.004154cb
movzx eax, ax
test ax, ax
je 0x40a9c6
mov dword [ebp + 8], eax
xor ebx, ebx
cmp word [esi + 7], bx
jne 0x40aaa6
cmp word [esi + 9], di
jbe 0x40a9dc
mov word [esi + 9], di
mov word [esi + 7], di
xor ecx, ecx
movzx edi, di
mov edx, 0x7f2
mov eax, edi
mov dword [ebp + 0xc], edi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0042551d
pop ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x40aa34
push fcn.00409119
push 0x408f19
push dword [ebp + 0xc]
mov dword [eax], edi
lea edi, [eax + 4]
push 0x7f2
push edi
call fcn.0042558a
jmp 0x40aa36
mov edi, ebx
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [esi + 0x334], edi
mov dword [ebp + 0xc], ebx
cmp ax, word [esi + 7]
jae 0x40aa9a
mov edi, ebx
mov eax, dword [esi + 0x334]
mov byte [edi + eax], bl
movzx eax, word [esi + 0x834]
movsd xmm0, qword [esi + 0x82a]
push eax
movzx eax, word [esi + 0x832]
push eax
push ecx
push ecx
mov ecx, dword [esi + 0x334]
add ecx, 0xd
movsd qword [esp], xmm0
add ecx, edi
call fcn.0040ec87
mov ecx, dword [ebp + 0xc]
add edi, 0x7f2
movzx eax, word [esi + 7]
inc ecx
mov dword [ebp + 0xc], ecx
cmp ecx, eax
jb 0x40aa4d
push ebx
lea ecx, [esi + 0x338]
call fcn.0040970c
cmp byte [esi + 4], 0
je 0x40ab95
push 0x400
lea eax, [esi + 0x3d1]
push ebx
push eax
call fcn.00426e50
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [esi + 0x7e5], ebx
mov ecx, esi
mov dword [esi + 0x7e1], ebx
mov dword [esi + 0x7dd], ebx
mov dword [esi + 0x7d9], ebx
mov byte [esi + 0x35c], bl
mov byte [esi + 4], bl
mov dword [esi + 0x812], eax
call fcn.004098ee
lea eax, [ebp - 0xb0]
mov ecx, 0x4a6c46
push eax
call fcn.004154fe
mov eax, dword [ebp + 8]
mov word [esi + 0x231], ax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x40ab1d
cmp byte [eax], 0
jne 0x40ab23
lea eax, [ebp - 0xb0]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esi + 0x22d], eax
cmp byte [esi + 5], 0
jne 0x40ab95
lea eax, [ebp + 0x14]
mov dword [ebp + 0x14], ebx
push eax
push ebx
push esi
push 0x40e3f5
push 0x200000
push ebx
call fcn.0042d4ec
add esp, 0x18
mov dword [esi + 0x369], eax
test eax, eax
jne 0x40ab78
mov eax, dword [esi]
mov ecx, esi
push ebx
push ebx
call dword [eax + 0x24]
xor al, al
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x369], ebx
jmp 0x40ab8f
push 0xa
call fcn.0040e756
pop ecx
cmp byte [esi + 5], 0
je 0x40ab87
cmp dword [esi + 0x3b1], ebx
jbe 0x40abb5
mov eax, dword [esi + 0x3ad]
push esi
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx]
call dword [edx + 8]
inc ebx
cmp ebx, dword [esi + 0x3b1]
jb 0x40ab9d
mov al, 1
jmp 0x40ab67