Function at 0x4587e0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x4c9400
push 0x484720
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2424
call fcn.0049ff30
mov eax, dword [0x4cd094]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2430], eax
mov byte [0x4d1519], 1
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
neg eax
sbb eax, eax
add eax, 1
mov ebx, dword [eax*4 + 0x4cf754]
mov dword [ebp - 0x242c], ebx
mov byte [ebp - 0x2424], 0
test bl, 8
je 0x458899
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2424]
mov dword [0x4d1460], ecx
mov dword [ebp - 0x2428], str.oops
push 0x4bcb20
lea edx, [ebp - 0x2428]
push edx
call fcn.0048313b
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov dword [ebp - 0x2434], edx
call fcn.00458350
ret
test ebx, 0x200
je 0x4588f1
mov dword [ebp - 4], 1
lea eax, [ebp - 0x2424]
mov dword [0x4d1460], eax
mov dword [ebp - 0x2428], str.oops
push 0x4bcb20
lea ecx, [ebp - 0x2428]
push ecx
call fcn.0048313b
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx]
mov eax, dword [edx]
mov dword [ebp - 0x2438], eax
call fcn.00458160
ret
lea ecx, [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
push 0x3ff
lea eax, [ebp - 0x424]
push eax
call fcn.00480ecd
add esp, 0x10
test eax, eax
jl 0x4589be
cmp eax, 0x3ff
ja 0x4589be
jne 0x458926
mov byte [ebp - 0x25], 0
test ebx, 0x400
je 0x458949
lea ecx, [ebp - 0x424]
push ecx
mov edx, dword [ebp - 0x2430]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [0x4d151c]
add esp, 0xc
and ebx, 2
jne 0x45895b
test byte [ebp - 0x242c], 4
je 0x458b35
mov ecx, dword [ebp - 0x2430]
push ecx
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x424]
push eax
push str.Debug_Assertion_Failed._n_nExpression_:__s_nLine_:__d_nFile_:__s_n_n
mov eax, 0x1000
lea edi, [ebp - 0x1424]
call fcn.00408ae0
add esp, 0x10
test eax, eax
jne 0x4589be
test byte [ebp - 0x242c], 8
je 0x458abb
mov ecx, 0x1000
mov eax, edi
xor esi, esi
nop
cmp byte [eax], 0
je 0x4589ad
add eax, 1
sub ecx, 1
jne 0x4589a0
test ecx, ecx
jne 0x4589dc
mov esi, 0x80070057
mov edx, dword [ebp - 0x2428]
jmp 0x4589e3
xor al, al
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.004804c6
mov esp, ebp
pop ebp
ret
mov edx, 0x1000
sub edx, ecx
mov eax, esi
test esi, esi
jl 0x458a01
mov ecx, 0x1000
sub ecx, edx
lea edx, [ebp + edx - 0x1424]
mov eax, str.CallStack:_n
call fcn.00408a70
test eax, eax
jne 0x4589be
mov ecx, 0x1000
lea eax, [ebp - 0x1424]
xor esi, esi
cmp byte [eax], 0
je 0x458a1f
add eax, 1
sub ecx, 1
jne 0x458a12
test ecx, ecx
jne 0x458a30
mov esi, 0x80070057
mov edx, dword [ebp - 0x2428]
jmp 0x458a37
mov edx, 0x1000
sub edx, ecx
mov eax, esi
test esi, esi
jl 0x458a56
mov ecx, 0x1000
sub ecx, edx
lea edx, [ebp + edx - 0x1424]
lea eax, [ebp - 0x2424]
call fcn.00408a70
test eax, eax
jne 0x4589be
mov ecx, 0x1000
lea eax, [ebp - 0x1424]
xor esi, esi
jmp 0x458a70
cmp byte [eax], 0
je 0x458a7d
add eax, 1
sub ecx, 1
jne 0x458a70
test ecx, ecx
jne 0x458a8e
mov esi, 0x80070057
mov edx, dword [ebp - 0x2428]
jmp 0x458a95
mov edx, 0x1000
sub edx, ecx
mov eax, esi
test esi, esi
jl 0x458ab3
mov ecx, 0x1000
sub ecx, edx
lea edx, [ebp + edx - 0x1424]
mov eax, 0x4b7db8
call fcn.00408a70
test eax, eax
jne 0x4589be
mov ecx, 0x1000
lea eax, [ebp - 0x1424]
xor esi, esi
test ebx, ebx
je 0x458b40
lea esp, [esp]
cmp byte [eax], 0
je 0x458add
add eax, 1
sub ecx, 1
jne 0x458ad0
test ecx, ecx
jne 0x458aee
mov esi, 0x80070057
mov edx, dword [ebp - 0x2428]
jmp 0x458af5
mov edx, 0x1000
sub edx, ecx
mov eax, esi
test esi, esi
jl 0x458b13
mov ecx, 0x1000
sub ecx, edx
lea edx, [ebp + edx - 0x1424]
mov eax, str._press__ok__to_advance__press__cancel__to_exit_
call fcn.00408a70
test eax, eax
jne 0x4589be
push 0x11
push str.BSLib_Debug_Module
lea ecx, [ebp - 0x1424]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
je 0x458ba2
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp byte [eax], 0
je 0x458b4d
add eax, 1
sub ecx, 1
jne 0x458b40
test ecx, ecx
jne 0x458b5e
mov esi, 0x80070057
mov edx, dword [ebp - 0x2428]
jmp 0x458b65
mov edx, 0x1000
sub edx, ecx
mov eax, esi
test esi, esi
jl 0x458b83
mov ecx, 0x1000
sub ecx, edx
lea edx, [ebp + edx - 0x1424]
mov eax, str._press__ok__to_exit_program_
call fcn.00408a70
test eax, eax
jne 0x4589be
push 0x10
push str.BSLib_Debug_Module
lea edx, [ebp - 0x1424]
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x458b35
mov al, byte [ebp - 0x242c]
shr al, 4
not al
and al, 1
jmp 0x4589c0