Function at 0x47c230
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x5b00cc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40c], eax
mov dword [eax], 0
lea eax, [ecx + 0x18]
mov dword [ebp - 0x428], eax
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 0x41c], ecx
mov dword [ebp - 0x414], edx
mov dword [ebp - 0x418], eax
je 0x47c276
add dword [eax], 1
mov eax, dword [ecx + 0x80]
test eax, eax
push ebx
lea ebx, [ecx + 0x80]
push edi
je 0x47c299
cmp dword [eax + 0xc], 0
je 0x47c299
lea edi, [ebp - 0x418]
call fcn.004abdf0
cmp byte [ebp + 0xc], 0
push esi
je 0x47c31c
mov edi, 1
mov esi, 0x581d68
lea eax, [ebp - 0x408]
mov dword [ebp - 0x408], 0
call fcn.004ab970
mov esi, dword [ebp - 0x408]
test esi, esi
je 0x47c2d0
mov dword [esi + 0x10], 0x600
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x408]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.004ac650
mov edi, dword [ebp - 0x40c]
add esp, 0xc
mov ebx, eax
call fcn.004abdf0
mov eax, dword [ebp - 0x410]
test eax, eax
je 0x47c311
mov esi, eax
call fcn.004ab850
mov esi, dword [ebp - 0x408]
test esi, esi
je 0x47c32d
call fcn.004ab850
jmp 0x47c32d
mov edi, dword [ebp - 0x40c]
lea ebx, [ebp - 0x418]
call fcn.004abdf0
mov esi, dword [ebp - 0x40c]
push 0x57f5f0
push esi
call fcn.004abe40
mov ebx, dword [ebp - 0x41c]
mov ecx, dword [ebx + 0x30]
xor edi, edi
cmp ecx, edi
je 0x47c377
cmp byte [ebp + 0xc], 0
jne 0x47c377
lea eax, [ebp - 0x410]
push eax
call fcn.0047b250
push eax
push esi
call fcn.004abfa0
mov eax, dword [ebp - 0x410]
cmp eax, edi
je 0x47c377
mov esi, eax
call fcn.004ab850
mov esi, dword [ebp - 0x40c]
push 0x57f5f0
push esi
call fcn.004abe40
mov ecx, dword [ebp - 0x414]
cmp ecx, edi
je 0x47c3b6
lea edx, [ebp - 0x410]
push edx
call fcn.0047b250
push eax
push esi
call fcn.004abfa0
mov eax, dword [ebp - 0x410]
cmp eax, edi
je 0x47c3b6
mov esi, eax
call fcn.004ab850
cmp dword [ebx + 0x38], edi
mov dword [ebp - 0x410], edi
jle 0x47c612
mov dword [ebp - 0x414], edi
jmp 0x47c3d0
mov esi, dword [ebx + 0x34]
add esi, dword [ebp - 0x414]
cmp byte [esi + 8], 0
je 0x47c3f0
mov eax, dword [ebp - 0x40c]
push 0x57e8fc
push eax
call fcn.004abe40
cmp dword [esi + 4], 0
jne 0x47c58a
cmp byte [0x5f49d5], 0
mov dword [ebp - 0x408], 0
jne 0x47c41f
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, 0x1e
lea ebx, [ebp - 0x408]
call fcn.004ab8c0
mov ebx, dword [ebp - 0x408]
test ebx, ebx
je 0x47c45c
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
push ecx
add eax, 1
push str._has_a_null_parameter_type_ptr
push eax
call fcn.00566500
add esp, 0xc
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x47c472
mov dword [ebx + 0x10], 0x600
mov edx, dword [ebp - 0x428]
lea ecx, [ebp - 0x408]
push ecx
push edx
lea eax, [ebp - 0x424]
push eax
call fcn.004ac650
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x47c49d
mov eax, dword [eax + 4]
add eax, 1
jmp 0x47c4a2
mov eax, 0x57e81c
push eax
push str.param__parameterType
push 0x1fd
push str.........Commonobjects.cpp
push str.Failed_Assertion
push 4
push str.Runtime_Error__d:__s_nPress_OK_to_Continue_nPress_Cancel_to_Quit._n_nPlease_report_what_caused_this_error_nalong_with_the_information_below._n_n_s:__d_nFailure_Condition:__s_n_s
lea ecx, [ebp - 0x404]
push 0x400
push ecx
call fcn.00567446
add esp, 0x24
push 0x111
push str.Runtime_Error
lea edx, [ebp - 0x404]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
je 0x47c6e7
mov edi, dword [ebp - 0x424]
test edi, edi
je 0x47c541
cmp byte [0x5f49d5], 0
jne 0x47c519
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test edi, edi
je 0x47c536
add dword [edi], 0xffffffff
jne 0x47c536
push edi
call fcn.0056646e
add esp, 4
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x47c584
cmp byte [0x5f49d5], 0
jne 0x47c560
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add dword [ebx], 0xffffffff
jne 0x47c579
push ebx
call fcn.0056646e
add esp, 4
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebp - 0x41c]
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x420]
push eax
call fcn.0047b250
mov ecx, dword [ebp - 0x40c]
push eax
push ecx
call fcn.004abfa0
mov edi, dword [ebp - 0x420]
test edi, edi
je 0x47c5f3
cmp byte [0x5f49d5], 0
jne 0x47c5cb
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test edi, edi
je 0x47c5e8
add dword [edi], 0xffffffff
jne 0x47c5e8
push edi
call fcn.0056646e
add esp, 4
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x410]
add dword [ebp - 0x414], 0x20
add eax, 1
cmp eax, dword [ebx + 0x38]
mov dword [ebp - 0x410], eax
jl 0x47c3d0
cmp byte [ebp + 0xc], 0
pop esi
je 0x47c686
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x47c686
lea edx, [ebp - 0x420]
push edx
call fcn.0047b250
push eax
mov eax, dword [ebp - 0x40c]
push eax
call fcn.004abfa0
mov edi, dword [ebp - 0x420]
test edi, edi
je 0x47c686
cmp byte [0x5f49d5], 0
jne 0x47c65e
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test edi, edi
je 0x47c67b
add dword [edi], 0xffffffff
jne 0x47c67b
push edi
call fcn.0056646e
add esp, 4
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 0x418]
test edi, edi
je 0x47c6cf
cmp byte [0x5f49d5], 0
jne 0x47c6ab
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add dword [edi], 0xffffffff
jne 0x47c6c4
push edi
call fcn.0056646e
add esp, 4
push 0x5f3a18
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x40c]
pop edi
xor ecx, ebp
pop ebx
call fcn.00566120
mov esp, ebp
pop ebp
ret 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]