Function at 0x506670
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x40c
mov eax, dword [0x5b00cc]
xor eax, esp
mov dword [esp + 0x408], eax
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
push esi
push edi
jne 0x5066e8
push ebx
push str.view
push 0x189
push str.........CommonClassLibRuntimeWindow.cpp
lea eax, [ebx + 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 + 0x2c]
push 0x400
push eax
call fcn.00567446
add esp, 0x24
push 0x111
push str.Runtime_Error
lea ecx, [esp + 0x18]
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
jne 0x5066e8
push ebx
call dword [sym.imp.KERNEL32.DLL_ExitProcess]
cmp byte [ebx + 0x86], 0
jne 0x50690f
cmp dword [ebx + 0xb4], 0
mov esi, dword [ebp + 0x10]
jne case.default.0x506711
mov eax, dword [ebp + 0xc]
cmp eax, 3
ja case.default.0x506711
jmp dword [eax*4 + 0x506924]
movsx edx, word [ebx + 0x46]
mov eax, esi
sub eax, edx
add word [ebx + 0x46], ax
add word [ebx + 0x4a], ax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
movzx edx, word [ebx + 0x46]
je case.default.0x506711
cmp byte [ebx + 0x86], 0
jne case.default.0x506711
movsx edi, word [ebx + 0x44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1f4]
push 1
movsx edx, dx
push edi
push edx
call eax
jmp case.default.0x506711
movsx ecx, word [ebx + 0x44]
movzx edx, word [ebx + 0x46]
mov eax, esi
sub eax, ecx
add word [ebx + 0x44], ax
add word [ebx + 0x48], ax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
movzx edi, word [ebx + 0x44]
je case.default.0x506711
cmp byte [ebx + 0x86], 0
jne case.default.0x506711
mov eax, dword [ecx]
mov eax, dword [eax + 0x1f4]
push 1
movsx edi, di
movsx edx, dx
push edi
push edx
call eax
jmp case.default.0x506711
mov cx, word [ebx + 0x46]
add cx, si
mov word [ebx + 0x4a], cx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je case.default.0x506711
cmp byte [ebx + 0x86], 0
jne case.default.0x506711
movsx eax, word [ebx + 0x48]
movsx edi, word [ebx + 0x44]
push 1
sub eax, edi
push eax
push esi
jmp 0x5067f0
mov ax, word [ebx + 0x44]
add ax, si
mov word [ebx + 0x48], ax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je case.default.0x506711
cmp byte [ebx + 0x86], 0
jne case.default.0x506711
movsx eax, word [ebx + 0x4a]
movsx edi, word [ebx + 0x46]
push 1
push esi
sub eax, edi
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x1f8]
call edx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x5068bf
cmp dword [ebx + 0x6c], 0
jne 0x5068a5
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xf
call esi
cmp byte [ebx + 0x36], 0
je 0x506827
push 0x21
call esi
push 0x20
jmp 0x506833
cmp dword [ebx + 0x68], 4
je 0x506835
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 0x506873
cmp eax, 7
je 0x506873
cmp eax, 4
je 0x506877
cmp eax, 2
je 0x506877
mov edi, dword [ecx + 0x68]
mov esi, 0xfffffff0
call fcn.0041a660
test eax, 0xc00000
je 0x506877
push 4
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x506877
push 0x33
call esi
cmp byte [0x5f4d59], 0
jne 0x50688d
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 0x50690f
cmp eax, 2
je 0x50690f
mov ecx, ebx
call fcn.0055ab60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x408]
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x50690f
mov ecx, dword [ebp + 0xc]
cmp ecx, 2
jne 0x5068e9
cmp byte [ebx + 0xb0], 0
jne 0x506904
mov dword [ebx + 0xa8], esi
mov byte [ebx + 0xb0], 1
jmp 0x506904
cmp ecx, 3
jne 0x506904
cmp byte [ebx + 0xb1], 0
jne 0x506904
mov dword [ebx + 0xac], esi
mov byte [ebx + 0xb1], 1
push esi
push ecx
push eax
call fcn.004bbfd0
add esp, 0xc
mov ecx, dword [esp + 0x414]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00566120
mov esp, ebp
pop ebp
ret