Function at 0x409cd0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x45bea8
push 0x439ec0
mov eax, dword fs:[0]
push eax
sub esp, 0x530
mov eax, dword [0x45f478]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 8]
mov dword [ebp - 0x530], esi
mov dword [ebp - 4], 0
lea eax, [ebp - 0x520]
push eax
call fcn.0040d3c0
push esi
call fcn.004073a0
add esp, 8
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
test al, al
jne 0x409d54
push 0xe0000003
call ebx
push 0
push 0
push 0
push 0x60000001
mov edi, dword [sym.imp.KERNEL32.dll_RaiseException]
call edi
jmp 0x409d5a
mov edi, dword [sym.imp.KERNEL32.dll_RaiseException]
mov byte [ebp - 0x522], 0
mov byte [ebp - 0x521], 0
lea eax, [ebp - 0x522]
push eax
push 5
push 1
push esi
call fcn.00407220
add esp, 0x10
test al, al
je 0x409d98
lea eax, [ebp - 0x521]
push eax
push 4
push 1
push esi
call fcn.00407220
add esp, 0x10
test al, al
jne 0x409da5
push 0
push 0
push 0
push 0x60000000
call edi
cmp byte [ebp - 0x522], 0
jne 0x409dcb
cmp byte [ebp - 0x521], 0
jne 0x409dcb
push 0xe0000003
call ebx
push 0
push 0
push 0
push 0x60000001
call edi
push 2
push 1
push esi
call fcn.004073e0
add esp, 0xc
test al, al
jne 0x409de9
push 0
push 0
push 0
push 0x60000000
call edi
imul esi, esi, 0x63
mov dword [ebp - 0x52c], esi
push 0
push 0
push 0
mov ebx, dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
call ebx
mov ecx, dword [0x460ac4]
mov dword [esi + ecx + 0x1e], eax
add esi, dword [0x460ac4]
push 0xffffffffffffffff
push 0xff676980
push 0
push dword [esi + 0x16]
call fcn.00439e50
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x534], edx
push 0
push 0
push 0
mov eax, dword [esi + 0x16]
imul eax, eax, 0x3e8
push eax
lea eax, [ebp - 0x538]
push eax
push dword [esi + 0x1e]
mov edi, dword [sym.imp.KERNEL32.dll_SetWaitableTimer]
call edi
push 0
push 0
push 0
call ebx
mov ecx, dword [0x460ac4]
mov ebx, dword [ebp - 0x52c]
mov dword [ebx + ecx + 0x1a], eax
mov esi, dword [0x460ac4]
push 0xffffffffffffffff
push 0xff676980
push 0
push dword [esi + ebx + 0x12]
call fcn.00439e50
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x53c], edx
push 0
push 0
push 0
mov eax, dword [esi + ebx + 0x12]
imul eax, eax, 0x3e8
push eax
lea eax, [ebp - 0x540]
push eax
push dword [esi + ebx + 0x1a]
call edi
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x42], eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
jne 0x409eee
push str.CreateEvent
lea eax, [ebp - 0x520]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
mov esi, dword [sym.imp.KERNEL32.dll_RaiseException]
call esi
jmp 0x409ef4
mov esi, dword [sym.imp.KERNEL32.dll_RaiseException]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x46], eax
test eax, eax
jne 0x409f2b
push str.CreateEvent
lea eax, [ebp - 0x520]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
call esi
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x56], eax
test eax, eax
jne 0x409f62
push str.CreateEvent
lea eax, [ebp - 0x520]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
call esi
mov ecx, dword [0x460ac4]
cmp dword [ecx + ebx + 0x32], 0
jne 0x409fd0
lea eax, [ebx + 0x36]
add eax, ecx
push eax
push 0
lea eax, [ecx + 4]
add eax, ebx
push eax
push 0x409770
push 0
push 0
call fcn.0043a802
add esp, 0x18
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x32], eax
test eax, eax
jne 0x409fd0
push 0xe000000d
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str._beginthreadex__
lea eax, [ebp - 0x520]
push eax
call edi
push str.connectors_readsock_thread_could_not_be_started
lea eax, [ebp - 0x420]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
call esi
mov ecx, dword [0x460ac4]
cmp dword [ecx + ebx + 0x3a], 0
jne 0x40a03e
lea eax, [ebx + 0x3e]
add eax, ecx
push eax
push 0
lea eax, [ecx + 4]
add eax, ebx
push eax
push 0x40a6e0
push 0
push 0
call fcn.0043a802
add esp, 0x18
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x3a], eax
test eax, eax
jne 0x40a03e
push 0xe000000d
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str._beginthreadex__
lea eax, [ebp - 0x520]
push eax
call edi
push str.connectors_writesock_thread_could_not_be_started
lea eax, [ebp - 0x420]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
call esi
mov eax, dword [0x460ac4]
lea ecx, [ebx + eax]
cmp dword [ecx + 0x4e], 0
jne 0x40a0a9
lea eax, [ecx + 0x52]
push eax
push 0
lea eax, [ecx + 4]
push eax
push 0x408550
push 0
push 0
call fcn.0043a802
add esp, 0x18
mov ecx, dword [0x460ac4]
mov dword [ebx + ecx + 0x4e], eax
test eax, eax
jne 0x40a0a9
push 0xe000000d
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str._beginthreadex__
lea eax, [ebp - 0x520]
push eax
call edi
push str.connectors_guardian_thread_could_not_be_started
lea eax, [ebp - 0x420]
push eax
call edi
push 0
push 0
push 0
push 0x60000001
call esi
mov al, 1
jmp 0x40a169
mov byte [ebp - 0x523], al
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00439a01
mov esp, ebp
pop ebp
ret