Function at 0x409ce0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
cmp dword [0x5426d0], 8
push ebx
push esi
push edi
jb 0x409d24
push 0x46000088
call fcn.00408960
mov ebx, dword [ebp + 8]
add esp, 4
test eax, eax
je 0x409d27
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx]
push eax
push ecx
push str.WE_INIT_maxevents_d_flags0x_08x
push 0x46000088
call fcn.00408640
add esp, 0x10
jmp 0x409d27
mov ebx, dword [ebp + 8]
push 0x28
call dword [sym.imp.MSVCR80.dll_malloc]
mov edi, eax
xor eax, eax
add esp, 4
cmp edi, eax
jne 0x409d3f
jmp fcn.00408a80
test byte [ebp + 0xc], 2
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
mov dword [edi], 0x4096d0
mov dword [edi + 4], 0x409700
mov dword [edi + 8], 0x409750
mov dword [edi + 0xc], 0x4097a0
mov dword [edi + 0x10], 0x409ad0
je 0x409d7d
mov dword [edi + 0x14], 1
cmp dword [ebx], eax
mov dword [edi + 0x20], eax
jg 0x409dab
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x409dab
push 0x1ba
push str..event.c
push str.Assertion_failed_at__s:_d
push 0x10
call fcn.00408640
add esp, 0x10
mov eax, dword [ebx]
lea esi, [eax + eax]
cmp esi, 0x40
jl 0x409dba
mov esi, 0x40
cmp eax, 0x40
mov dword [edi + 0x24], esi
jl 0x409dc7
mov eax, 0x40
mov dword [ebx], eax
xor eax, eax
push eax
push 4
push eax
push esi
call fcn.004dcff0
cmp esi, 0xffffffff
mov ebx, eax
mov dword [esp + 0x14], edx
ja 0x409de9
test edx, edx
ja 0x409de9
cmp eax, 0xffffffff
jbe 0x409e06
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x409e06
push str.attemped_allocation_of_excessively_large_array
push 0x10
call fcn.00408640
add esp, 8
mov eax, ebx
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
mov dword [edi + 0x18], eax
jne 0x409e22
jmp fcn.00408a80
cmp esi, 0xffffffff
mov ecx, dword [esp + 0x14]
ja 0x409e34
test ecx, ecx
ja 0x409e34
cmp ebx, 0xffffffff
jbe 0x409e55
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x409e51
push str.attemped_allocation_of_excessively_large_array
push 0x10
call fcn.00408640
add esp, 8
mov eax, dword [esp + 0xc]
push ebx
push 0
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
push 0
push 8
xor eax, eax
push eax
push esi
call fcn.004dcff0
cmp esi, 0xffffffff
mov ebx, eax
mov dword [esp + 0x14], edx
ja 0x409e82
test edx, edx
ja 0x409e82
cmp eax, 0xffffffff
jbe 0x409e9f
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x409e9f
push str.attemped_allocation_of_excessively_large_array
push 0x10
call fcn.00408640
add esp, 8
mov eax, ebx
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
mov dword [edi + 0x1c], eax
jne 0x409ebb
jmp fcn.00408a80
cmp esi, 0xffffffff
mov ecx, dword [esp + 0x14]
ja 0x409ecd
test ecx, ecx
ja 0x409ecd
cmp ebx, 0xffffffff
jbe 0x409eee
push 0x10
call fcn.00408960
add esp, 4
test eax, eax
je 0x409eea
push str.attemped_allocation_of_excessively_large_array
push 0x10
call fcn.00408640
add esp, 8
mov eax, dword [esp + 0xc]
push ebx
push 0
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
cmp dword [0x5426d0], 8
jb 0x409f2d
push 0x46000088
call fcn.00408960
add esp, 4
test eax, eax
je 0x409f2d
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push esi
push eax
push str.WE_INIT_maxevents_d_capacity_d
push 0x46000088
call fcn.00408640
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret