Function at 0x40a464
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.0040308f
push dword [ebp + 0x14]
xor ebx, ebx
push dword [ebp + 8]
mov byte [ebp - 1], bl
call fcn.0040dfee
mov edi, dword [ebp + 0x10]
cmp edi, ebx
pop ecx
pop ecx
je 0x40a6c0
mov esi, 0x49abe0
lea ecx, [ebp - 0xc]
call fcn.0042e1c4
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.004171f7
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
call fcn.00428a5b
mov edi, dword [ebp - 8]
push 4
push edi
push 0x4855d4
call fcn.0042996a
add esp, 0x18
test al, al
je 0x40a4d9
mov ax, word [edi + 8]
call fcn.0040ac1b
test al, al
jne 0x40a4fa
push 5
push edi
push 0x4855cc
call fcn.0042996a
add esp, 0xc
test al, al
je 0x40a563
mov ax, word [edi + 0xa]
call fcn.0040ac1b
test al, al
je 0x40a563
push 0x6592
mov ecx, esi
call fcn.0042e20b
mov eax, dword [0x49abe0]
push 0x6590
mov word [eax], bx
push dword [0x49abe0]
push 0x2713
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringW]
push dword [0x49abe0]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
inc eax
push eax
mov ecx, esi
call fcn.0042e20b
push edi
lea ecx, [ebp - 0x10]
call fcn.0043a4ba
mov eax, dword [ebp - 0x10]
call fcn.0040441e
lea ecx, [ebp - 0x10]
call fcn.00428a48
mov ecx, esi
mov byte [0x49e003], bl
call fcn.00428a48
push 4
push dword [ebp - 8]
push 0x4855c4
call fcn.0042996a
add esp, 0xc
test al, al
je 0x40a5d6
mov ecx, dword [ebp - 8]
add ecx, 8
xor edx, edx
mov dx, word [ecx]
mov eax, edx
call fcn.0040ac1b
test al, al
jne 0x40a595
cmp dx, 0x2a
jne 0x40a5d6
mov ax, word [ecx]
call fcn.0040ac1b
mov byte [ebp + 0x13], al
lea eax, [ebp - 0x14]
push eax
mov byte [0x49ab86], bl
mov dword [ebp - 0x14], ecx
call fcn.00428a5b
cmp byte [ebp + 0x13], bl
pop ecx
je 0x40a6c5
push 3
push dword [ebp - 0x14]
push 0x4855c0
call fcn.00429920
add esp, 0xc
test al, al
je 0x40a6c5
cmp byte [ebp - 1], 2
jge 0x40a613
push 0x49ab70
mov eax, 0x10000
push eax
push 0x49abf8
push 0x402f18
push eax
push ebx
mov byte [0x49abf8], 0x11
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
je 0x40a60d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40a613
mov byte [0x49abf8], bl
mov al, byte [0x49aed4]
mov byte [0x49ab84], al
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push 0x40306f
push 0x1000000
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_CreateFiber]
push ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
push edi
mov dword [0x49ab88], eax
call dword [sym.imp.KERNEL32.dll_SwitchToFiber]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFiber]
push ebx
mov ecx, 0x49aed0
call fcn.0041da45
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4855be
mov ecx, 0x49af14
call fcn.0042e281
mov eax, dword [0x49abbc]
cmp eax, ebx
mov dword [0x49af0c], ebx
mov dword [0x49af10], ebx
mov byte [0x49e003], bl
mov byte [0x49abf9], 0x20
je 0x40a6e9
lea ecx, [ebp - 0xc]
mov byte [0x499280], 1
mov edi, eax
mov byte [ebp - 1], 2
call fcn.00428a48
push dword [ebp + 0x14]
push dword [ebp + 8]
call fcn.0040dfee
cmp edi, ebx
pop ecx
pop ecx
jne 0x40a494
or eax, 0xffffffff
jmp 0x40a713
mov eax, dword [ebp - 8]
add eax, 8
push eax
lea ecx, [ebp - 0x18]
call fcn.0043a4ba
push dword [ebp - 0x18]
mov ecx, 0x49aed0
call fcn.00424c60
lea ecx, [ebp - 0x18]
call fcn.00428a48
cmp byte [0x49ad52], bl
je 0x40a6f6
call fcn.0040c974
mov ecx, 0x49aed0
call fcn.00428f33
mov esi, eax
push esi
call fcn.00428b2a
pop ecx
lea ecx, [ebp - 0xc]
call fcn.00428a48
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10