Function at 0x507c50
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x824
mov eax, dword [0x5b00cc]
xor eax, esp
mov dword [esp + 0x820], eax
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
jne 0x507cd2
push 0
push str.window
push 0x41c
push str.........CommonClassLibRuntimeWindow.cpp
mov eax, 4
call fcn.004f1f50
push eax
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 eax, [esp + 0x44]
push 0x400
push eax
call fcn.00567446
add esp, 0x24
push 0x111
push str.Runtime_Error
lea ecx, [esp + 0x30]
push ecx
push 0
call edi
cmp eax, 2
jne 0x507cd2
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [0x5f499c], 0
jne 0x507d39
push str.You_dont_have_an_application_object_and_were_expecting_one
push str.gApplicationObject
push 0x41d
push str.........CommonClassLibRuntimeWindow.cpp
mov eax, 4
call fcn.004f1f50
push eax
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 edx, [esp + 0x444]
push 0x400
push edx
call fcn.00567446
add esp, 0x24
push 0x111
push str.Runtime_Error
lea eax, [esp + 0x430]
push eax
push 0
call edi
cmp eax, 2
jne 0x507d39
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebx + 0x94]
cmp esi, eax
je 0x507d70
test esi, esi
je 0x507d54
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x507d54
add ecx, 1
mov dword [esi + 0xc], ecx
test eax, eax
je 0x507d70
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x507d70
add ecx, 0xffffffff
mov dword [eax + 0xc], ecx
jne 0x507d70
push eax
call fcn.004ff480
add esp, 4
test esi, esi
mov dword [ebx + 0x94], esi
jne 0x507db5
cmp byte [0x5f4d59], 0
mov ebx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x68]
je 0x507d97
cmp byte [ebx + 0xaa], 0
je 0x507d97
mov eax, dword [0x5f4d68]
push 0
push eax
call dword [sym.imp.USER32.dll_SetMenu]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x820]
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x508096
mov ecx, dword [eax + 0x68]
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.005480e0
cmp byte [0x5f4d59], 0
je 0x507e25
mov edx, dword [ebx + 0x3c]
cmp byte [edx + 0xaa], 0
je 0x507e25
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x58]
mov edx, dword [0x5f4d68]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetMenu]
mov eax, dword [0x5f499c]
mov ecx, dword [eax + 0x2c]
push ecx
push esi
call fcn.004ff570
mov edx, dword [0x5f499c]
add esp, 8
mov dword [edx + 0x2c], esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x820]
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + 0x68]
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
mov edx, dword [esi + 0x2c]
mov ecx, dword [ebx + 0x3c]
mov edi, eax
mov eax, dword [edx + 0x58]
mov edx, dword [ecx + 0x68]
push eax
push edx
call dword [sym.imp.USER32.dll_SetMenu]
test edi, edi
jne 0x508096
push 0xf
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ecx + 0x68]
mov esi, eax
lea eax, [esp + 0x18]
push eax
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0x24]
sub edi, dword [esp + 0x1c]
add edi, esi
cmp byte [ebx + 0x86], 0
jne 0x508096
cmp dword [ebx + 0xb4], 0
jne 0x507ebf
mov ax, word [ebx + 0x44]
add ax, di
mov word [ebx + 0x48], ax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x507ebf
cmp byte [ebx + 0x86], 0
jne 0x507ebf
movsx eax, word [ebx + 0x4a]
movsx esi, word [ebx + 0x46]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1f8]
push 1
push edi
sub eax, esi
push eax
call edx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x507f8c
cmp dword [ebx + 0x6c], 0
jne 0x507f72
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xf
call esi
cmp byte [ebx + 0x36], 0
je 0x507eec
push 0x21
call esi
push 0x20
jmp 0x507ef8
cmp dword [ebx + 0x68], 4
je 0x507efa
push 8
call esi
push 7
call esi
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + 0x130]
mov eax, dword [eax + 0x68]
cmp eax, 3
je 0x507f38
cmp eax, 7
je 0x507f38
cmp eax, 4
je 0x507f3c
cmp eax, 2
je 0x507f3c
mov edi, dword [ecx + 0x68]
mov esi, 0xfffffff0
call fcn.0041a660
test eax, 0xc00000
je 0x507f3c
push 4
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x507f3c
push 0x33
call esi
cmp byte [0x5f4d59], 0
jne 0x507f52
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ecx + 0x68]
push edx
call dword [sym.imp.USER32.dll_GetMenu]
mov ebx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x130]
mov eax, dword [eax + 0x68]
cmp eax, 4
je 0x508096
cmp eax, 2
je 0x508096
mov ecx, ebx
call fcn.0055ab60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x820]
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 0xb4]
test esi, esi
mov dword [esp + 0x10], esi
je 0x508096
cmp byte [ebx + 0xb1], 0
jne 0x507fb4
mov dword [ebx + 0xac], edi
mov byte [ebx + 0xb1], 1
call fcn.004107b0
push eax
call fcn.0047a430
push eax
push esi
call fcn.004ff5b0
add esp, 0xc
test al, al
je 0x50802c
mov ebx, dword [esi + 0x8c]
test ebx, ebx
jne 0x507ff7
push 0xb12
push str.........Common_runctl.cpp
xor esi, esi
mov edx, str.view
lea ecx, [ebx + 4]
call fcn.004f1fc0
mov esi, dword [esp + 0x18]
add esp, 8
mov cx, word [ebx + 0x44]
add cx, di
mov word [ebx + 0x48], cx
cmp dword [ebx + 0x3c], 0
je 0x50802c
cmp byte [ebx + 0x86], 0
jne 0x50802c
mov ecx, dword [ebx + 0x3c]
movsx eax, word [ebx + 0x4a]
movsx ebx, word [ebx + 0x46]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1f8]
push 1
push edi
sub eax, ebx
push eax
call edx
mov ecx, dword [esi + 0x56]
mov eax, dword [esi + 0x52]
lea ebx, [esi + 0x52]
push ecx
push eax
push edi
mov dx, ax
add dx, di
push 3
push esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov word [esi + 0x56], dx
call fcn.004bbe50
mov ax, word [esp + 0x26]
add esp, 0x14
cmp ax, word [ebx + 2]
jne 0x508080
mov cx, word [esp + 0x10]
cmp cx, word [ebx]
jne 0x508080
mov dx, word [esp + 0x16]
cmp dx, word [ebx + 6]
jne 0x508080
mov ax, word [esp + 0x14]
cmp ax, word [ebx + 4]
je 0x508096
mov esi, dword [esi + 0x38]
test esi, esi
je 0x508096
mov edx, dword [esi]
mov eax, dword [edx + 0x1a8]
push 0
push ebx
mov ecx, esi
call eax
mov ecx, dword [esp + 0x82c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret