Function at 0x1000a6cc
Capabilities:
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
push ebx
xor ebx, ebx
push 0x114010c
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call fcn.10014580
pop ecx
mov dword [ebp - 4], eax
cmp eax, ebx
jne 0x1000a6fe
or eax, 0xffffffff
jmp 0x1000aac5
push esi
push edi
push 0x103
lea eax, [ebp - 0x11b]
push ebx
push eax
mov byte [ebp - 0x11c], bl
call fcn.10014780
add esp, 0xc
cmp dword [0x10028d44], 6
mov dword [ebp - 8], ebx
mov esi, 0x104
jb 0x1000a76b
cmp dword [0x10029c14], 3
jne 0x1000a7a6
push 0x844
call fcn.10015612
mov dword [esp], 0x10029f28
push dword [0x1002a030]
mov dword [ebp - 8], eax
push eax
lea eax, [ebp - 0x11c]
push esi
push eax
call fcn.100147fe
lea eax, [ebp - 8]
push eax
call fcn.100156b9
add esp, 0x18
jmp 0x1000a7a6
call fcn.1001a1a6
test eax, eax
je 0x1000a7a6
push 0x129
call fcn.10015612
push dword [0x1002a030]
mov dword [ebp - 8], eax
push 0x10029f28
push eax
lea eax, [ebp - 0x11c]
push esi
push eax
call fcn.100147fe
lea eax, [ebp - 8]
push eax
call fcn.100156b9
add esp, 0x1c
cmp byte [ebp - 0x11c], bl
je 0x1000a7e9
push ebx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.10018ec3
add esp, 0xc
test eax, eax
je 0x1000a7d8
push 0x1388
mov dword [ebp - 0xc], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
lea eax, [ebp - 0x11c]
push ebx
push eax
call fcn.10014780
add esp, 0xc
xor edi, edi
cmp dword [ebp + 0x14], ebx
jbe 0x1000a854
xor esi, esi
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
lea eax, [eax + edi*2]
mov cx, word [eax]
mov word [esi + edx + 0x114], cx
movzx eax, word [eax]
push eax
push ebx
call fcn.100161eb
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
mov dword [esi + ecx + 0x10c], eax
mov eax, dword [ebp - 4]
cmp dword [esi + eax + 0x10c], ebx
jl 0x1000a82d
inc dword [eax]
mov eax, dword [ebp - 4]
or dword [esi + eax + 0x110], 0xffffffff
mov eax, dword [ebp - 4]
mov dword [esi + eax + 0x118], ebx
mov eax, dword [ebp - 4]
inc dword [eax + 0x108]
inc edi
add esi, 0x114
cmp edi, dword [ebp + 0x14]
jb 0x1000a7f2
mov eax, dword [ebp - 4]
push 0x10029240
push 0x32
add eax, 8
push 0x14
push eax
call fcn.10016745
add esp, 0x10
cmp dword [ebp - 0xc], ebx
jne 0x1000a87c
push 0x1d4c0
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push dword [ebp - 4]
push 0x1000a36a
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xc], eax
cmp eax, ebx
jne 0x1000a8a1
mov dword [ebp - 8], 0xfffffffe
jmp 0x1000aa3f
push 0x81f
call fcn.10015612
push ebx
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
push 0x1001d2bc
push dword [ebp + 8]
lea eax, [ebp - 0x41c]
push dword [0x1002a4e0]
push 0xff
push eax
push 0x1001d2d2
call fcn.1001693c
lea eax, [ebp - 0x10]
push eax
call fcn.100156b9
push 0x1342
call fcn.10015612
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push eax
mov dword [ebp - 8], eax
mov edi, 0x1ff
lea eax, [ebp - 0x31c]
push edi
push eax
call fcn.100147fe
lea eax, [ebp - 8]
add esp, 0x40
push eax
call fcn.100156b9
pop ecx
mov dword [ebp - 8], ebx
cmp dword [ebp + 0x14], ebx
jbe 0x1000a989
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 8], ebx
jbe 0x1000a93c
push 0x1001d614
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
movzx eax, word [ecx + eax + 0x114]
push eax
push 0x1001d2d4
lea eax, [ebp - 0x31c]
push eax
call esi
mov ecx, edi
sub ecx, eax
push ecx
lea eax, [ebp - 0x31c]
push eax
call esi
lea eax, [ebp + eax - 0x31c]
push eax
call fcn.100147fe
add dword [ebp - 0x10], 0x114
add esp, 0x10
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 0x14]
jb 0x1000a925
lea eax, [ebp - 0x31c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x1000a992
push ebx
lea ecx, [ebp - 0x14]
push ecx
sub eax, edx
lea ecx, [ebp - 0x18]
push ecx
push eax
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.100153a7
add esp, 0x18
test eax, eax
jns 0x1000a9d2
push ebx
push dword [ebp - 0xc]
mov dword [ebp - 8], 0xfffffffd
call dword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x1000aa3f
push 0x100
lea eax, [ebp - 0x41c]
push ebx
push eax
call fcn.10014780
push 0x200
lea eax, [ebp - 0x31c]
push ebx
push eax
call fcn.10014780
add esp, 0x18
push 0x88b8
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp edx, ebx
jbe 0x1000aa36
mov eax, dword [ebp - 4]
add eax, 0x114
cmp dword [eax + 4], ebx
je 0x1000aa2b
mov si, word [eax]
mov edi, dword [ebp + 0x18]
mov word [edi + ecx*2], si
inc ecx
add eax, 0x114
dec edx
jne 0x1000aa1b
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
je 0x1000aa3f
mov dword [eax], ecx
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
je 0x1000aaa3
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jbe 0x1000aaa3
mov ebx, dword [sym.imp.WS2_32.dll_closesocket]
xor esi, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [esi + eax + 0x10c]
or edi, 0xffffffff
cmp eax, edi
je 0x1000aa7d
push eax
call ebx
mov eax, dword [ebp - 4]
mov dword [esi + eax + 0x10c], edi
mov eax, dword [ebp - 4]
mov eax, dword [esi + eax + 0x110]
cmp eax, edi
je 0x1000aa98
push eax
call ebx
mov eax, dword [ebp - 4]
mov dword [esi + eax + 0x110], edi
add esi, 0x114
dec dword [ebp - 0xc]
jne 0x1000aa5f
lea eax, [ebp - 4]
push 0x114010c
push eax
call fcn.100145b0
push dword [ebp - 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.100145b0
mov eax, dword [ebp - 8]
add esp, 0x10
pop edi
pop esi
pop ebx
leave
ret