Function at 0x409e90
Capabilities:
Copy file
Hide graphical window
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xd1c
mov dword [ebp - 0xccc], eax
lea eax, [edx - 0x9cfe]
mov ebx, edx
cmp eax, 4
mov edi, dword [ebp + 0xc]
jbe 0x409fe0
lea edx, [edx - 0x9d09]
cmp edx, 0xb
jbe 0x409fb2
lea esi, [ebx - 0x9d6c]
cmp esi, 0x7f
jbe 0x40a0b8
mov esi, dword [0x46e130]
test esi, esi
setne al
xor ecx, ecx
cmp ebx, 0x460
setne cl
test eax, ecx
jne 0x40a1a7
cmp ebx, 0x9c72
je 0x40a561
jg 0x409ff0
cmp ebx, 0x9c4e
je 0x40a980
jg 0x40a1bd
cmp ebx, 0x9c44
je 0x40b24d
jg 0x40a62c
cmp ebx, 0x41e
je 0x40b63c
jg 0x40ac9e
cmp ebx, 2
je 0x40b69a
jg 0x40b4cb
cmp ebx, 1
jne 0x40a044
cmp edi, 0x300
setne cl
xor edx, edx
cmp edi, 0x400
setne dl
test ecx, edx
je 0x40a5d0
mov esi, dword [0x46a2c0]
test esi, esi
jne 0x40c8e4
mov ecx, dword [0x46a080]
test ecx, ecx
je 0x40a5d0
mov ebx, dword [0x46a030]
xor edi, edi
xor esi, esi
mov dword [esp], ebx
call fcn.00432e00
mov dword [0x46a270], edi
mov dword [0x46a260], esi
call fcn.004094d0
jmp 0x40a5d0
mov eax, ebx
call fcn.00408130
lea esi, [esi]
mov edx, 1
mov dword [ebp - 0xcc8], edx
mov eax, dword [ebp - 0xcc8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edx
call fcn.00402190
jmp 0x409fc0
cmp ebx, 0x9c92
je 0x40a714
jg 0x40a2a0
cmp ebx, 0x9c7d
je 0x40a69d
jg 0x40a8b8
cmp ebx, 0x9c77
je 0x40b6ca
jg 0x40ae61
cmp ebx, 0x9c75
je 0x40bfb7
jg 0x40bc1f
cmp ebx, 0x9c73
je 0x40c310
lea esi, [ebx - 0x9858]
cmp esi, 0xc7
jbe 0x40ab24
mov esi, dword [0x460ea0]
test esi, esi
jle 0x40a5d0
xor eax, eax
jmp 0x40a079
add eax, 0xc
mov edx, dword [eax + 0x460ea0]
test edx, edx
jle 0x40a5d0
cmp dword [eax + 0x460ea0], ebx
jne 0x40a068
mov edi, dword [eax + 0x460ea4]
test edi, edi
je 0x40b42f
mov eax, dword [eax + 0x460ea8]
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov edx, dword [0x46a010]
mov dword [esp], edx
call fcn.00435200
jmp 0x40a5d0
mov edi, dword [0x46a030]
mov dword [esp], edi
call fcn.00432e00
mov dword [esp + 8], esi
mov edi, eax
lea ecx, [ebp - 0x58]
mov eax, dword [sym.imp.mameplib.dll_drivers]
mov esi, dword [eax + edi*4]
mov ebx, dword [esi + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00429530
test eax, eax
je 0x409fc0
mov dword [esp], edi
call fcn.0041e810
mov dword [ebp - 0xcd0], eax
mov byte [0x46aa40], 0
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x40aba7
cmp byte [ebp - 0x58], 0
je 0x40a17c
cmp byte [0x46aa40], 0
je 0x40a169
mov ebx, 0x46aa40
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebx]
add ebx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov ecx, edx
and ecx, 0x80808080
je 0x40a130
mov eax, ecx
lea esi, [ebx + 2]
shr eax, 0x10
and edx, 0x8080
cmove ecx, eax
mov dl, cl
cmove ebx, esi
add dl, cl
sbb ebx, 3
mov word [ebx], 0x2c
mov dword [esp], 0x46aa40
lea ebx, [ebp - 0x58]
mov dword [esp + 4], ebx
call sub.msvcrt.dll_strcat
mov ecx, dword [ebp - 0xcd0]
add ecx, 0x10
mov dword [esp], ecx
call fcn.00429600
cmp byte [0x46aa40], 0
jne 0x40ac83
mov dword [esp], edi
call fcn.00422050
jmp 0x409fc0
mov dword [esp], 0x46e130
call fcn.00429600
call fcn.00407300
jmp 0x409ef2
cmp ebx, 0x9c57
je 0x40b202
jle 0x40a5e6
cmp ebx, 0x9c6d
je 0x40b275
jg 0x40b050
cmp ebx, 0x9c5f
jl 0x40a044
cmp ebx, 0x9c6a
jle 0x40c0be
cmp ebx, 0x9c6c
jne 0x40a044
test edi, edi
je 0x40a291
xor edi, edi
mov edx, 0x110a
mov ebx, 9
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov esi, dword [0x46a050]
mov dword [esp], esi
call fcn.0044e1c5
sub esp, 0x10
test eax, eax
je 0x40a5d0
mov dword [ebp - 0x244], eax
lea edx, [ebp - 0x248]
xor esi, esi
mov eax, 0x113e
mov ebx, 4
mov dword [ebp - 0x248], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov ecx, dword [0x46a050]
mov dword [esp], ecx
call fcn.0044e1c5
mov eax, dword [ebp - 0x224]
sub esp, 0x10
test eax, eax
je 0x40a5d0
cmp dword [eax + 8], 2
jne 0x40a5d0
call fcn.00407b20
jmp 0x40a5d0
cmp ebx, 0x9c9b
je 0x40a6fc
jg 0x40a864
cmp ebx, 0x9c96
je 0x40b981
jg 0x40af3e
cmp ebx, 0x9c94
je 0x40c119
jg 0x40bcae
xor esi, esi
xor eax, eax
mov ecx, 0x1004
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
test eax, eax
mov edi, eax
jle 0x40a373
mov dword [ebp - 0xab4], esi
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0xab0], ebx
lea ecx, [ebp - 0xab8]
mov eax, 4
mov dword [ebp - 0xab8], eax
mov ebx, 0x104b
inc esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebx
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.0044e1c5
mov ebx, dword [ebp - 0xa98]
sub esp, 0x10
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.004147e0
mov dword [esp], ebx
mov edx, 0xffffffff
mov dword [esp + 4], edx
call fcn.00414820
cmp esi, edi
jl 0x40a304
test edi, edi
jle 0x40a55a
call fcn.004023c0
cmp edi, 0x63
jg 0x40be34
mov esi, 0x64
mov eax, esi
cdq
idiv edi
mov dword [ebp - 0xce0], eax
call fcn.00412980
cmp eax, 4
je 0x40bd97
call fcn.00412980
cmp eax, 3
je 0x40bd97
mov esi, dword [0x46a010]
mov dword [esp], esi
call sub.USER32.dll_UpdateWindow
xor eax, eax
sub esp, 4
cmp eax, edi
jge 0x40a501
lea esi, [ebp - 0x198]
mov dword [ebp - 0xa84], eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0xa80], edx
mov ebx, 4
mov edx, 0x104b
mov dword [ebp - 0xa88], ebx
lea eax, [ebp - 0xa88]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
mov ebx, dword [ebp - 0xa68]
sub esp, 0x10
mov dword [esp], ebx
call fcn.004147c0
inc eax
je 0x40b9a8
mov dword [esp], ebx
call fcn.00414800
inc eax
je 0x40b99b
mov dword [ebp - 0x1b0], ebx
mov edx, 1
mov ecx, 0xffffffff
mov dword [ebp - 0x1b8], edx
lea eax, [ebp - 0x1b8]
mov edx, 0x1053
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
mov ebx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov eax, 0x1015
mov dword [esp + 4], eax
mov ecx, dword [0x46a030]
mov dword [esp], ecx
call fcn.0044e1c5
sub esp, 0x10
jmp 0x40a4b7
mov dword [esp], esi
call sub.USER32.dll_TranslateMessage
sub esp, 4
mov dword [esp], esi
call fcn.0044e255
sub esp, 4
xor edx, edx
xor eax, eax
mov ecx, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov ecx, dword [0x46a030]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0044e285
sub esp, 0x14
test eax, eax
jne 0x40a4a1
mov eax, ebx
cdq
idiv dword [ebp - 0xce0]
test edx, edx
je 0x40b3c0
lea eax, [ebx + 1]
cmp eax, edi
jl 0x40a3d6
call fcn.00408760
call fcn.00412870
test eax, eax
je 0x40bd70
mov eax, dword [0x46a030]
mov ebx, dword [sym.imp.mameplib.dll_drivers]
mov dword [esp], eax
call fcn.00432e00
mov esi, dword [ebx + eax*4]
mov edi, dword [esi + 0x10]
mov dword [esp], 1
mov dword [esp + 4], edi
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov ebx, dword [0x46a0d0]
mov dword [esp], ebx
call fcn.0042b910
call fcn.00407850
call fcn.00407850
jmp 0x40a5d0
xor edx, edx
cmp dword [0x45c038], 0
sete dl
mov dword [0x45c038], edx
mov dword [esp], edx
call fcn.00412c30
cmp dword [0x45c038], 1
sbb ebx, ebx
not ebx
and ebx, 5
mov dword [esp + 4], ebx
mov esi, dword [0x46a160]
mov dword [esp], esi
call sub.USER32.dll_ShowWindow
mov edi, dword [0x46a010]
sub esp, 8
mov dword [esp], edi
call fcn.00401a80
call fcn.00407300
xor eax, eax
mov ecx, 1
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_InvalidateRect
sub esp, 0xc
xor eax, eax
mov dword [ebp - 0xcc8], eax
mov eax, dword [ebp - 0xcc8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebx, 0x9c52
je 0x40b610
jg 0x40acc1
cmp ebx, 0x9c50
je 0x40bebb
jg 0x40b9c4
mov eax, dword [0x46a130]
test eax, eax
je 0x40bd1b
mov eax, dword [0x46a030]
mov dword [esp], eax
call sub.USER32.dll_SetFocus
sub esp, 4
jmp 0x409fc0
cmp ebx, 0x9c49
je 0x40b62d
jg 0x40ad61
cmp ebx, 0x9c47
je 0x40bf28
jg 0x40ba5e
cmp ebx, 0x9c46
jne 0x40a044
mov dword [esp], 0
xor ebx, ebx
mov edi, 0x436930
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, 0x6c
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov esi, dword [0x46a010]
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp], eax
call fcn.0044e045
sub esp, 0x14
jmp 0x40a617
mov edx, dword [0x46a030]
mov ebx, 0x436a40
mov dword [esp], edx
call fcn.00432e00
mov dword [esp], 0
mov edi, eax
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov dword [esp + 0x10], edi
mov edi, 0x75
mov dword [esp + 0xc], ebx
mov esi, dword [0x46a010]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], esi
call fcn.0044e045
mov eax, dword [0x46a030]
sub esp, 0x14
mov dword [esp], eax
call sub.USER32.dll_SetFocus
sub esp, 4
jmp 0x40a5d0
xor ebx, ebx
mov dword [esp + 4], ebx
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.00432e80
jmp 0x40a5d0
mov esi, dword [0x46a130]
test esi, esi
jne 0x40a55a
xor ecx, ecx
mov ebx, 9
mov edi, 0x110a
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov edx, dword [0x46a050]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
xor edx, edx
test eax, eax
je 0x40a791
mov dword [ebp - 0x214], eax
xor edx, edx
mov ebx, 4
mov dword [ebp - 0x218], ebx
lea edi, [ebp - 0x218]
mov esi, 0x113e
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov eax, dword [0x46a050]
mov dword [esp], eax
call fcn.0044e1c5
mov edx, dword [ebp - 0x1f4]
sub esp, 0x10
mov edi, dword [edx + 0x1c]
mov eax, 0x110a
mov esi, 9
test edi, edi
mov ebx, edi
cmove ebx, dword [edx]
xor edx, edx
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov ecx, dword [0x46a050]
mov dword [esp], ecx
call fcn.0044e1c5
sub esp, 0x10
xor edx, edx
test eax, eax
je 0x40a829
mov dword [ebp - 0x1e4], eax
mov edx, 0x113e
lea ecx, [ebp - 0x1e8]
mov eax, 4
xor edi, edi
mov dword [ebp - 0x1e8], eax
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov esi, dword [0x46a050]
mov dword [esp], esi
call fcn.0044e1c5
sub esp, 0x10
mov eax, 1
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x1d0]
mov dword [esp], 0
mov dword [esp + 4], ecx
call sub.COMCTL32.DLL_ImageList_GetIcon
sub esp, 0xc
mov edx, eax
mov dword [esp + 0xc], edx
mov edx, 0xfffffffe
mov dword [esp + 0x10], ebx
mov dword [esp + 8], edx
mov esi, dword [ebp - 0xccc]
mov dword [esp + 4], esi
mov edi, dword [0x46a020]
mov dword [esp], edi
call fcn.0043ef00
mov dword [esp], ebx
call fcn.004224d0
call fcn.00407850
jmp 0x40a5d0
cmp ebx, 0x9c9f
je 0x40b793
jg 0x40b171
cmp ebx, 0x9c9d
je 0x40c135
jg 0x40bce4
xor eax, eax
xor ecx, ecx
mov dword [esp + 8], eax
mov eax, 0x1004
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
dec eax
mov dword [esp + 4], eax
jmp 0x40a702
cmp ebx, 0x9c8e
jg 0x40ae45
cmp ebx, 0x9c87
jge 0x40b717
cmp ebx, 0x9c85
jle 0x40b661
mov byte [ebp - 0x858], 0
lea esi, [ebp - 0x858]
call fcn.00428ba0
test eax, eax
je 0x40bd3d
mov dword [esp], 4
mov edx, esi
xor eax, eax
call fcn.004042b0
test eax, eax
je 0x40a5d0
call fcn.004145c0
mov dword [esp + 8], eax
lea ebx, [ebp - 0x748]
mov eax, str._s_bkground.png
mov dword [esp + 4], eax
mov edi, 1
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp], ebx
mov edx, pe_nt_image_headers32
mov dword [esp + 4], edx
call sub.KERNEL32.dll_SetFileAttributesA
sub esp, 8
xor ecx, ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.KERNEL32.dll_CopyFileA
sub esp, 0xc
call fcn.004039b0
mov dword [esp + 8], edi
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_InvalidateRect
sub esp, 0xc
jmp 0x409fc0
mov dword [esp], 0
mov edi, 0x439540
mov esi, 0x74
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
mov edx, dword [0x46a010]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.0044e045
mov ebx, eax
sub esp, 0x14
call fcn.00422190
test bl, 0x10
setne cl
test bl, 0x20
setne al
or eax, ecx
test al, 1
je 0x40a617
xor ebx, ebx
cmp ebx, dword [0x46a070]
jge 0x40aa0e
mov dword [esp], ebx
mov esi, 0xffffffff
mov dword [esp + 4], esi
call fcn.004147e0
mov dword [esp], ebx
mov eax, 0xffffffff
inc ebx
mov dword [esp + 4], eax
call fcn.00414820
cmp ebx, dword [0x46a070]
jl 0x40a9e3
xor eax, eax
mov ecx, 0xffffffff
mov ebx, 1
mov dword [0x46d2d0], ebx
mov esi, 1
mov dword [0x46a1a0], esi
mov dword [0x46d2e0], eax
mov dword [esp + 4], ecx
mov edi, dword [0x46a100]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_Remove
sub esp, 8
mov edx, 0xffffffff
mov dword [esp + 4], edx
mov ebx, dword [0x46a0f0]
mov dword [esp], ebx
call sub.COMCTL32.DLL_ImageList_Remove
mov eax, dword [0x46a0e0]
sub esp, 8
test eax, eax
je 0x40aa89
xor edx, edx
cmp edx, dword [0x46a070]
jl 0x40aa79
jmp 0x40aa89
mov eax, dword [0x46a0e0]
mov dword [eax + edx*4], 0
inc edx
cmp edx, dword [0x46a070]
jl 0x40aa74
mov eax, dword [str.noroms]
xor esi, esi
jmp 0x40aae8
mov dword [esp], eax
call fcn.00401660
test eax, eax
mov ebx, eax
je 0x40b44c
mov dword [esp + 8], ebx
mov edi, 0xffffffff
inc esi
mov dword [esp + 4], edi
mov edx, dword [0x46a100]
mov dword [esp], edx
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
sub esp, 0xc
mov eax, 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov ecx, dword [0x46a0f0]
mov dword [esp], ecx
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
mov eax, dword [esi*8 + 0x460d04]
sub esp, 0xc
test eax, eax
jne 0x40aa92
call fcn.004039b0
xor ecx, ecx
mov eax, 1
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ebx, dword [0x46a010]
mov dword [esp], ebx
call sub.USER32.dll_InvalidateRect
mov esi, dword [0x46a030]
sub esp, 0xc
mov dword [esp], esi
call fcn.00432950
jmp 0x40a617
call fcn.004227c0
mov edi, eax
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0xc], ecx
mov eax, 0xb
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
mov dword [esp], esi
call fcn.00412bb0
mov dword [esp], esi
test eax, eax
sete cl
movzx ebx, cl
xor esi, esi
mov dword [esp + 4], ebx
call fcn.00412bd0
call fcn.00422f90
mov dword [esp], edi
mov edi, 0xb
call fcn.00423290
mov dword [esp + 0xc], esi
mov eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.0044e1c5
sub esp, 0x10
jmp 0x40a5d0
mov dword [esp], eax
call dword [sym.imp.mameplib.dll_mame_strdup]
mov dword [ebp - 0xcd4], eax
test eax, eax
je 0x40ac70
mov dword [esp], eax
mov ecx, 0x4604e8
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strtok
test eax, eax
mov esi, eax
je 0x40ac70
mov dword [esp + 4], eax
lea ebx, [ebp - 0x58]
mov dword [esp], ebx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ac5e
cmp byte [0x46aa40], 0
je 0x40ac39
mov ebx, 0x46aa40
lea esi, [esi]
mov eax, dword [ebx]
add ebx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
mov ecx, edx
and ecx, 0x80808080
je 0x40ac00
mov eax, ecx
shr eax, 0x10
and edx, 0x8080
cmove ecx, eax
mov dl, cl
lea eax, [ebx + 2]
cmove ebx, eax
add dl, cl
sbb ebx, 3
mov word [ebx], 0x2c
mov dword [esp + 4], esi
mov dword [esp], 0x46aa40
call sub.msvcrt.dll_strcat
mov dword [esp], 0
mov esi, 0x4604e8
mov dword [esp + 4], esi
jmp 0x40abca
mov dword [esp], str.dup_
call fcn.00428ae0
mov byte [ebp - 0x58], 0
jmp 0x40ac49
mov ecx, dword [ebp - 0xcd4]
mov dword [esp], ecx
call sub.msvcrt.dll_free
jmp 0x40a10e
mov dword [esp], 0x46aa40
call dword [sym.imp.mameplib.dll_mame_strdup]
mov edx, dword [ebp - 0xcd0]
mov dword [edx + 0x10], eax
jmp 0x40a19a
cmp ebx, 0x545
je 0x40be50
jg 0x40b470
cmp ebx, 0x48c
jne 0x40a044
jmp 0x409f7c
cmp ebx, 0x9c54
je 0x40bf37
jl 0x40ba72
cmp ebx, 0x9c55
je 0x40c29a
cmp ebx, 0x9c56
jne 0x40a044
mov byte [ebp - 0x468], 0
lea ebx, [ebp - 0x468]
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.00432e00
mov edi, dword [sym.imp.mameplib.dll_drivers]
mov esi, eax
mov ecx, dword [edi + eax*4]
mov edx, dword [ecx + 8]
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcpy
call fcn.00428ba0
test eax, eax
je 0x40c79d
mov dword [esp], 3
mov edx, ebx
mov eax, 1
call fcn.004042b0
test eax, eax
je 0x409fc0
mov dword [0x46a290], ebx
mov eax, esi
xor ebx, ebx
call fcn.004094d0
mov dword [0x46a290], ebx
jmp 0x409fc0
cmp ebx, 0x9c4b
je 0x40bf43
jl 0x40b9b5
cmp ebx, 0x9c4c
je 0x40c162
cmp ebx, 0x9c4d
jne 0x40a044
call fcn.00412ec0
mov dword [ebp - 0xcc4], eax
lea esi, [ebp - 0xcc4]
xor ebx, ebx
mov dword [esp], ebx
call fcn.00412d90
mov dword [ebp + ebx*4 - 0x898], eax
inc ebx
cmp ebx, 0xf
jle 0x40ad9e
mov ebx, dword [0x46a010]
mov eax, 0x24
mov edx, 0x181
mov dword [ebp - 0x8c8], eax
lea edi, [ebp - 0x898]
lea eax, [ebp - 0x8c8]
mov dword [ebp - 0x8c4], ebx
mov ecx, dword [esi]
mov dword [ebp - 0x8b8], edi
mov dword [ebp - 0x8b4], edx
mov dword [ebp - 0x8bc], ecx
mov dword [esp], eax
call sub.COMDLG32.DLL_ChooseColorW
sub esp, 4
test eax, eax
je 0x40ae21
xor ebx, ebx
mov edx, dword [ebp + ebx*4 - 0x898]
mov dword [esp], ebx
inc ebx
mov dword [esp + 4], edx
call fcn.00412d70
cmp ebx, 0xf
jle 0x40ae00
mov edi, dword [ebp - 0x8bc]
mov dword [esi], edi
mov ebx, dword [ebp - 0xcc4]
xor esi, esi
mov dword [esp], ebx
call fcn.00412e90
mov dword [esp + 4], esi
xor ecx, ecx
mov dword [esp + 8], ecx
mov eax, dword [0x46a030]
jmp 0x40a970
cmp ebx, 0x9c90
je 0x40bf52
jg 0x40bb9d
call fcn.00408ff0
jmp 0x40a5d0
cmp ebx, 0x9c7a
je 0x40bf9c
jg 0x40b5b6
cmp ebx, 0x9c78
jne 0x40a044
xor ecx, ecx
cmp dword [0x45c03c], 0
mov ebx, 0x9c78
mov edi, 0x9c78
sete cl
mov dword [0x45c03c], ecx
mov dword [esp], ecx
call fcn.00412c50
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_GetMenu
sub esp, 4
cmp dword [0x45c03c], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
sbb edx, edx
not edx
and edx, 8
mov dword [esp + 8], edx
call sub.USER32.dll_CheckMenuItem
sub esp, 0xc
cmp dword [0x45c03c], 1
mov ecx, 0x402
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
sbb esi, esi
not esi
and esi, 8
mov dword [esp + 0xc], esi
mov edx, dword [0x46a090]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
cmp dword [0x45c03c], 1
sbb ebx, ebx
not ebx
and ebx, 5
mov dword [esp + 4], ebx
mov eax, dword [0x46a090]
mov dword [esp], eax
call sub.USER32.dll_ShowWindow
mov edx, dword [0x46a010]
sub esp, 8
mov dword [esp], edx
call fcn.00401a80
call fcn.00407300
jmp 0x40a5d0
cmp ebx, 0x9c98
je 0x40bf86
jl 0x40bc60
cmp ebx, 0x9c99
je 0x40c464
cmp ebx, 0x9c9a
jne 0x40a044
mov edx, 3
mov ecx, 0xffffffff
mov eax, 0x100c
mov dword [esp + 0xc], edx
xor edi, edi
xor esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
mov edx, 0x1028
mov ebx, eax
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 8], esi
mov esi, 0x1004
mov dword [esp + 4], edx
mov ecx, dword [0x46a030]
mov dword [esp], ecx
call fcn.0044e1c5
sub esp, 0x10
add ebx, eax
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
cmp ebx, eax
jge 0x40a888
mov edi, 3
mov esi, 0xffffffff
mov ebx, 0x100c
mov dword [esp + 0xc], edi
mov edi, 0x1028
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
mov ebx, eax
xor ecx, ecx
mov dword [esp + 0xc], ecx
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov esi, dword [0x46a030]
mov dword [esp], esi
call fcn.0044e1c5
sub esp, 0x10
lea eax, [ebx + eax]
mov dword [esp + 4], eax
jmp 0x40a702
cmp ebx, 0x9c6f
je 0x40c0b2
jl 0x40bc70
cmp ebx, 0x9c70
je 0x40c39f
cmp ebx, 0x9c71
jne 0x40a044
mov edi, dword [0x46a130]
test edi, edi
jne 0x40a55a
mov edx, 0xffffffff
mov edi, 3
mov esi, 0x100c
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x248]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov ebx, dword [0x46a030]
mov esi, 0x104b
mov dword [esp], ebx
call fcn.0044e1c5
mov dword [ebp - 0x244], eax
sub esp, 0x10
xor edx, edx
mov ecx, 2
xor eax, eax
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x240], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov ebx, dword [0x46a030]
xor esi, esi
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
mov eax, 1
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x22c]
mov dword [esp + 4], ecx
mov edi, dword [0x46a0f0]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_GetIcon
mov edx, dword [0x46a030]
sub esp, 0xc
mov ebx, eax
mov dword [esp], edx
call fcn.00432e00
mov dword [esp + 8], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov eax, dword [ebp - 0xccc]
mov dword [esp + 4], eax
mov ecx, dword [0x46a020]
mov dword [esp], ecx
call fcn.0043ef00
mov ecx, dword [0x46a030]
mov dword [esp], ecx
call fcn.00432e00
mov dword [esp], eax
call fcn.00422050
call fcn.00407850
jmp 0x40a5d0
cmp ebx, 0x9ca2
je 0x40c071
jg 0x40b568
cmp ebx, 0x9ca0
jne 0x40a044
mov eax, dword [0x46a130]
test eax, eax
jne 0x40a55a
mov eax, dword [0x46a030]
mov ebx, 1
mov dword [esp], eax
call fcn.00432e00
mov dword [esp], eax
call fcn.004228a0
mov ecx, dword [eax + 0x10]
mov edi, eax
mov dword [esp], ecx
call fcn.00422f60
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp], 0
call sub.COMCTL32.DLL_ImageList_GetIcon
mov ebx, dword [edi + 0x1c]
sub esp, 0xc
mov edx, 0xfffffffe
test ebx, ebx
cmove ebx, dword [edi]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebx
mov esi, dword [ebp - 0xccc]
mov dword [esp + 4], esi
jmp 0x40a844
call fcn.00412b80
xor ebx, ebx
test eax, eax
sete bl
mov dword [esp], ebx
mov esi, eax
call fcn.00412b70
call fcn.00407300
mov edi, dword [0x46a110]
test edi, edi
setne dl
xor ecx, ecx
test esi, esi
setne cl
test edx, ecx
je 0x40a5d0
xor eax, eax
xor edx, edx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [0x46a030]
jmp 0x40a5c5
mov edx, dword [0x46a030]
xor ebx, ebx
xor edi, edi
mov dword [esp], edx
call fcn.00432e00
mov dword [0x46a270], ebx
mov dword [0x46a260], edi
call fcn.004094d0
jmp 0x409fc0
xor ebx, ebx
cmp ebx, dword [0x46a070]
jge 0x40b2aa
mov dword [esp], ebx
mov esi, 0xffffffff
mov dword [esp + 4], esi
call fcn.004147e0
mov dword [esp], ebx
mov ecx, 0xffffffff
inc ebx
mov dword [esp + 4], ecx
call fcn.00414820
cmp ebx, dword [0x46a070]
jl 0x40b27f
xor ecx, ecx
mov edx, 0xffffffff
mov edi, 1
mov dword [0x46d2d0], edi
mov esi, 1
mov ebx, 0xffffffff
mov dword [0x46d2e0], ecx
mov dword [0x46a1a0], esi
mov dword [esp + 4], edx
mov eax, dword [0x46a100]
mov dword [esp], eax
call sub.COMCTL32.DLL_ImageList_Remove
sub esp, 8
mov dword [esp + 4], ebx
mov edi, dword [0x46a0f0]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_Remove
mov eax, dword [0x46a0e0]
sub esp, 8
test eax, eax
je 0x40b325
xor edx, edx
cmp edx, dword [0x46a070]
jl 0x40b315
jmp 0x40b325
mov eax, dword [0x46a0e0]
mov dword [eax + edx*4], 0
inc edx
cmp edx, dword [0x46a070]
jl 0x40b310
mov eax, dword [str.noroms]
xor esi, esi
jmp 0x40b384
mov dword [esp], eax
call fcn.00401660
test eax, eax
mov ebx, eax
je 0x40b4a7
mov dword [esp + 8], ebx
mov eax, 0xffffffff
inc esi
mov dword [esp + 4], eax
mov edi, dword [0x46a100]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
sub esp, 0xc
mov ecx, 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov edx, dword [0x46a0f0]
mov dword [esp], edx
call sub.COMCTL32.DLL_ImageList_ReplaceIcon
mov eax, dword [esi*8 + 0x460d04]
sub esp, 0xc
test eax, eax
jne 0x40b32e
call fcn.004039b0
mov ecx, 1
xor edx, edx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov ebx, dword [0x46a010]
mov dword [esp], ebx
call sub.USER32.dll_InvalidateRect
mov esi, dword [0x46a030]
sub esp, 0xc
mov dword [esp], esi
call fcn.00432950
jmp 0x40a5d0
mov dword [esp], 5
mov ecx, str.Game_search__d___complete
mov dword [esp + 4], ecx
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp], 0
lea edx, [ebx + ebx*4]
mov dword [esp + 4], eax
lea eax, [edx + edx*4]
lea ecx, [eax*4 + 0x64]
mov eax, ecx
cdq
idiv edi
mov dword [esp + 8], eax
call fcn.004047e0
test ebx, ebx
je 0x40bd52
xor ecx, ecx
xor edx, edx
mov eax, 0x405
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov ecx, dword [0x46a1b0]
mov dword [esp], ecx
call fcn.0044e1c5
sub esp, 0x10
jmp 0x40a4f6
mov edi, dword [eax + 0x460ea8]
mov dword [esp + 4], edi
mov esi, dword [0x46a010]
mov dword [esp], esi
call fcn.00428cb0
jmp 0x40a5d0
movzx edi, word [esi*8 + 0x460d00]
mov dword [esp + 4], edi
mov edx, dword [0x46a020]
mov dword [esp], edx
call fcn.0044e135
sub esp, 8
mov ebx, eax
jmp 0x40aaa4
cmp ebx, 0x9c41
jne 0x40a044
xor eax, eax
xor ebx, ebx
mov edi, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov esi, dword [0x46a010]
mov dword [esp], esi
call fcn.0044def5
sub esp, 0x10
jmp 0x409fc0
movzx eax, word [esi*8 + 0x460d00]
mov dword [esp + 4], eax
mov ebx, dword [0x46a020]
mov dword [esp], ebx
call fcn.0044e135
sub esp, 8
mov ebx, eax
jmp 0x40b340
cmp ebx, 0x63
jne 0x40a044
mov eax, 0x200
lea ebx, [ebp - 0xcb8]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.0044ddd5
sub esp, 0xc
cmp edi, 0x200
je 0x40cad7
ja 0x40c7b5
cmp edi, 0x100
jne 0x40a5d0
mov dword [esp], 5
mov esi, 0x46062a
mov dword [esp + 4], esi
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp], eax
call fcn.00429af0
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x40a5d0
mov dword [esp], 0x4603fd
call fcn.00429af0
mov dword [esp + 4], eax
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call fcn.0044e165
sub esp, 8
jmp 0x40a5d0
cmp ebx, 0x9ca3
je 0x40c5a0
cmp ebx, 0x9ca4
jne 0x40a044
mov dword [esp], 0
xor esi, esi
mov ebx, 0xc0
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, 0x437100
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edx
mov ecx, dword [0x46a010]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
jmp 0x40a68d
cmp ebx, 0x9c7b
je 0x40c4be
cmp ebx, 0x9c7c
jne 0x40a044
xor ebx, ebx
xor edx, edx
mov ecx, 0x1004
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov edi, dword [0x46a030]
mov dword [esp], edi
call fcn.0044e1c5
sub esp, 0x10
test eax, eax
mov ebx, eax
jle 0x40a5d0
call sub.msvcrt.dll_rand
cdq
idiv ebx
mov dword [esp + 4], edx
jmp 0x40a702
mov ecx, dword [0x46a010]
mov dword [esp], ecx
call fcn.00430e50
call fcn.00422990
call fcn.00407b20
jmp 0x40a617
mov eax, 0x9c49
call fcn.00403580
jmp 0x409fc0
mov eax, dword [0x46a160]
mov dword [esp], eax
call fcn.00446bd0
call fcn.00407300
mov esi, dword [0x46a160]
mov dword [esp], esi
call fcn.00446910
jmp 0x40a5d0
lea eax, [ebx - 0x9c84]
cmp eax, 1
ja 0x40b680
mov dword [esp], 6
call fcn.00412f50
test eax, eax
je 0x40a5d0
lea esi, [ebx - 0x9c7e]
mov dword [esp + 4], esi
mov ecx, dword [0x46a160]
mov dword [esp], ecx
call fcn.00446880
jmp 0x40b649
mov esi, dword [0x46a2c0]
test esi, esi
je 0x40a5d0
xor eax, eax
mov ebx, 1
mov edi, 0x1116
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [0x46a050]
jmp 0x40ab97
mov dword [esp], 0
mov edi, 0x437e70
mov esi, 0xa9
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov ebx, dword [0x46a010]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0044e045
sub esp, 0x14
dec eax
jne 0x40a617
call fcn.00407b20
jmp 0x40a617
sub ebx, 0x9c87
mov dword [esp], ebx
call fcn.00412f50
mov dword [esp], ebx
test eax, eax
sete dl
movzx edi, dl
mov dword [esp + 4], edi
call fcn.00412fa0
test eax, eax
je 0x40a5d0
mov dword [esp], ebx
call fcn.00412f50
mov dword [esp], ebx
test eax, eax
sete dl
movzx esi, dl
mov dword [esp + 4], esi
call fcn.00412f70
mov ecx, dword [0x46a160]
mov dword [esp], ecx
call fcn.00446e40
mov eax, dword [0x46a160]
mov dword [esp], eax
call fcn.004467b0
cmp eax, ebx
je 0x40c9ab
mov edi, dword [0x46a010]
mov dword [esp], edi
call fcn.00401a80
jmp 0x40b649
mov byte [ebp - 0x358], 0
mov esi, dword [0x46a030]
mov dword [esp], esi
call fcn.00432e00
mov dword [ebp - 0xcdc], eax
inc eax
je 0x40b7f8
mov edi, dword [sym.imp.mameplib.dll_drivers]
lea esi, [ebp - 0x358]
mov eax, dword [ebp - 0xcdc]
mov ecx, dword [edi + eax*4]
mov edx, dword [ecx + 8]
mov dword [esp], esi
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcpy
mov eax, dword [sym.imp.mameplib.dll_drivers]
lea edx, [ebp - 0x688]
mov ebx, dword [ebp - 0xcdc]
mov edi, dword [eax + ebx*4]
mov ecx, dword [edi + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strcpy
call fcn.00428ba0
test eax, eax
je 0x40bf6d
mov dword [esp], 1
lea edx, [ebp - 0x358]
xor eax, eax
call fcn.004042b0
test eax, eax
je 0x409fc0
lea edx, [ebp - 0x358]
lea ecx, [ebp - 0xba8]
mov dword [esp], edx
lea esi, [ebp - 0x788]
mov dword [esp + 0xc], ecx
lea ebx, [ebp - 0x58]
mov dword [esp + 8], esi
lea edi, [ebp - 0x888]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edi
call sub.msvcrt.dll__splitpath
mov dword [esp + 0xc], esi
lea ecx, [ebp - 0x998]
mov eax, 0x4606be
mov dword [esp + 8], ebx
mov esi, 0x4606be
lea ebx, [ebp - 0xaa8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_sprintf
mov dword [esp], ebx
lea edx, [ebp - 0xba8]
lea ebx, [ebp - 0x998]
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp + 4], esi
call sub.msvcrt.dll_sprintf
mov edi, dword [ebx]
add ebx, 4
lea edx, [edi - 0x1010101]
not edi
and edx, edi
mov ecx, edx
and ecx, 0x80808080
je 0x40b89e
mov edi, ecx
lea esi, [ebx + 2]
shr edi, 0x10
and edx, 0x8080
lea edx, [ebp - 0x998]
cmove ecx, edi
mov al, cl
cmove ebx, esi
add al, cl
sbb ebx, 3
sub ebx, edx
cmp byte [ebx + ebp - 0x999], 0x5c
je 0x40c880
mov edx, 0x2d
lea ebx, [ebp - 0xba8]
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
test eax, eax
je 0x40c955
mov esi, eax
lea eax, [ebp - 0xba8]
sub esi, eax
mov dword [esp + 8], esi
lea ecx, [ebp - 0xba8]
lea ebx, [ebp - 0xcb8]
mov dword [esp + 4], ecx
lea edi, [ebp - 0x688]
mov dword [esp], ebx
call sub.msvcrt.dll_strncpy
xor edx, edx
mov byte [esi + ebp - 0xcb8], dl
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40c6d4
mov dword [esp], 5
mov eax, str._s_is_not_a_valid_savestate_file_for_game__s.
lea esi, [ebp - 0x358]
mov dword [esp + 4], eax
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00404830
jmp 0x409fc0
xor ebx, ebx
xor eax, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov edi, 0x114
mov dword [esp + 4], edi
jmp 0x40ab92
mov dword [esp], ebx
call fcn.00431060
jmp 0x40a43d
mov dword [esp], ebx
call fcn.00431010
jmp 0x40a42e
mov eax, 0x9c4a
call fcn.00403580
jmp 0x409fc0
mov dword [esp], 0
mov ebx, 0x435830
mov edi, 0xad
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov esi, dword [0x46a010]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], esi
call fcn.0044e045
sub esp, 0x14
call fcn.00422190
mov edx, 2
mov dword [esp + 4], edx
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_KillTimer
sub esp, 8
call fcn.00412a00
test eax, eax
jle 0x409fc0
call fcn.00412a00
imul esi, eax, 0x3e8
mov edx, 2
xor edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_SetTimer
sub esp, 0x10
jmp 0x409fc0
mov eax, 0x9c48
call fcn.00403580
call fcn.00407b20
jmp 0x409fc0
mov byte [ebp - 0x168], 0
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.00432e00
mov dword [ebp - 0xcd8], eax
mov edi, dword [ebp - 0xcd8]
mov esi, dword [sym.imp.mameplib.dll_drivers]
mov ecx, dword [esi + edi*4]
lea edi, [ebp - 0x168]
mov eax, dword [ecx + 8]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
call fcn.00428ba0
test eax, eax
je 0x40c059
mov dword [esp], 0
mov edx, edi
mov eax, 1
call fcn.004042b0
test eax, eax
je 0x409fc0
mov dword [esp], edi
lea ecx, [ebp - 0x468]
lea eax, [ebp - 0x368]
mov dword [esp + 0x10], ecx
lea esi, [ebp - 0x268]
lea ebx, [ebp - 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
call sub.msvcrt.dll__splitpath
mov dword [esp + 0xc], esi
mov edx, 0x4606be
lea esi, [ebp - 0x578]
mov dword [esp + 8], ebx
mov ebx, esi
mov dword [esp + 4], edx
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov edi, dword [ebx]
add ebx, 4
lea edx, [edi - 0x1010101]
not edi
and edx, edi
mov ecx, edx
and ecx, 0x80808080
je 0x40bb27
mov edi, ecx
lea eax, [ebx + 2]
shr edi, 0x10
and edx, 0x8080
cmove ecx, edi
mov dl, cl
cmove ebx, eax
add dl, cl
sbb ebx, 3
sub ebx, esi
cmp byte [ebx + ebp - 0x579], 0x5c
je 0x40c90f
mov dword [0x46a2b0], esi
mov eax, dword [ebp - 0xcd8]
lea edx, [ebp - 0x368]
mov dword [0x46a260], edx
xor esi, esi
xor ebx, ebx
call fcn.004094d0
mov dword [0x46a260], esi
mov dword [0x46a2b0], ebx
jmp 0x409fc0
mov edi, dword [0x46a030]
mov dword [esp], edi
call fcn.00432e00
mov dword [esp], eax
call fcn.00414880
mov edx, 3
mov ecx, 0xffffffff
mov ebx, 0x100c
mov dword [esp + 0xc], edx
mov esi, 3
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov edi, dword [0x46a030]
mov dword [esp], edi
mov edi, 0x1015
call fcn.0044e1c5
sub esp, 0x10
mov ebx, eax
mov edx, 0x100c
mov dword [esp + 0xc], esi
mov eax, 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov ecx, dword [0x46a030]
mov dword [esp], ecx
call fcn.0044e1c5
sub esp, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
jmp 0x40ab8e
xor edx, edx
mov ecx, 9
mov ebx, 0x110a
mov dword [esp + 0xc], edx
xor esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov edi, dword [0x46a050]
mov dword [esp], edi
call fcn.0044e1c5
sub esp, 0x10
mov dword [esp + 0xc], eax
mov eax, 0x1141
mov dword [esp + 8], esi
mov dword [esp + 4], eax
jmp 0x40b6c0
xor esi, esi
mov eax, 1
mov dword [esp + 0xc], esi
jmp 0x40b989
mov dword [esp], 0
call fcn.004131b0
mov ecx, dword [0x46a240]
mov dword [esp + 4], ecx
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.00432430
mov dword [esp], eax
call fcn.00413170
mov esi, dword [0x46a030]
mov dword [esp], esi
call fcn.004331f0
jmp 0x40a5d0
mov ebx, 3
mov edi, 0xffffffff
mov esi, 0x100c
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
inc eax
mov dword [esp + 4], eax
jmp 0x40a702
mov edx, 0x460
xor edi, edi
mov esi, 3
mov dword [esp + 4], edx
mov ecx, dword [0x46a010]
mov dword [esp], ecx
call sub.USER32.dll_GetDlgItem
sub esp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov ebx, 0xb5
mov dword [esp + 4], ebx
jmp 0x40ab97
mov edi, dword [ebp - 0xccc]
mov dword [esp + 4], edi
mov edx, dword [0x46a020]
mov dword [esp], edx
call fcn.0043ef40
call fcn.00422190
jmp 0x40a617
mov dword [esp], 4
mov edx, esi
xor eax, eax
call fcn.00404550
jmp 0x40a906
mov edx, 5
mov dword [esp + 4], edx
mov eax, dword [0x46a1b0]
mov dword [esp], eax
call sub.USER32.dll_ShowWindow
sub esp, 8
jmp 0x40b404
mov esi, dword [0x46a030]
mov edi, dword [sym.imp.mameplib.dll_drivers]
mov dword [esp], esi
call fcn.00432e00
mov ecx, dword [edi + eax*4]
mov edx, dword [ecx + 0x10]
mov dword [esp], edx
call fcn.00401dc0
jmp 0x40a53d
xor ecx, ecx
mov edx, 0x1027
xor eax, eax
mov dword [esp + 8], ecx
xor esi, esi
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
mov ecx, 0x1028
mov ebx, eax
mov dword [esp + 0xc], esi
xor eax, eax
xor esi, esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
add ebx, eax
mov ecx, 0x1027
mov dword [esp + 0xc], esi
xor eax, eax
mov esi, 0x1015
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
jmp 0x40a3b5
mov eax, 0x51eb851f
mov ecx, edi
sar ecx, 0x1f
imul edi
sar edx, 5
sub edx, ecx
mov dword [ebp - 0xce0], edx
jmp 0x40a399
call fcn.00412870
test eax, eax
sete cl
movzx eax, cl
mov dword [esp], eax
call fcn.00412880
call fcn.00412870
mov ebx, eax
call fcn.00412730
test eax, eax
jne 0x40c45d
dec ebx
je 0x40c456
mov eax, 8
mov dword [esp + 0xc], eax
mov ebx, 0x545
mov esi, 0x402
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov edi, dword [0x46a090]
mov dword [esp], edi
call fcn.0044e1c5
sub esp, 0x10
call fcn.00407b20
call fcn.00402820
jmp 0x40a5d0
mov dword [esp], 0
xor ebx, ebx
mov esi, 0x4354c0
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov edx, 0xaa
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov edi, dword [0x46a010]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.0044e045
sub esp, 0x14
dec eax
jne 0x409fc0
call fcn.00422190
mov ecx, dword [ebp - 0xccc]
mov dword [esp], ecx
call sub.USER32.dll_DestroyWindow
sub esp, 4
mov dword [esp], 0
call sub.USER32.dll_PostQuitMessage
sub esp, 4
jmp 0x409fc0
mov eax, 0x9c47
call fcn.00403580
jmp 0x409fc0
xor eax, eax
call fcn.00409b20
jmp 0x409fc0
mov eax, 0x9c4b
call fcn.00403580
jmp 0x409fc0
mov esi, dword [0x46a030]
mov dword [esp], esi
call fcn.00432e00
mov dword [esp], eax
call fcn.004148d0
jmp 0x40bbb3
mov dword [esp], 1
lea edx, [ebp - 0x358]
xor eax, eax
call fcn.00404550
jmp 0x40b819
mov edx, dword [0x46a030]
mov dword [esp], edx
call sub.USER32.dll_SetFocus
sub esp, 4
jmp 0x409f8a
mov ecx, dword [0x46a030]
mov dword [esp], ecx
call fcn.00432e00
mov dword [esp], eax
call fcn.00407d60
jmp 0x40a5d0
xor ebx, ebx
cmp dword [0x45c040], 0
sete bl
mov dword [0x45c040], ebx
mov dword [esp], ebx
mov ebx, 0x402
call fcn.00412c10
mov esi, dword [0x46a010]
mov dword [esp], esi
call sub.USER32.dll_GetMenu
sub esp, 4
cmp dword [0x45c040], 1
mov ecx, 0x9c75
mov dword [esp + 4], ecx
mov dword [esp], eax
sbb edi, edi
not edi
and edi, 8
mov dword [esp + 8], edi
call sub.USER32.dll_CheckMenuItem
sub esp, 0xc
cmp dword [0x45c040], 1
mov edx, 0x9c75
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
sbb eax, eax
not eax
and eax, 8
mov dword [esp + 0xc], eax
mov esi, dword [0x46a090]
mov dword [esp], esi
call fcn.0044e1c5
sub esp, 0x10
cmp dword [0x45c040], 1
sbb edi, edi
not edi
and edi, 5
mov dword [esp + 4], edi
mov eax, dword [0x46a0d0]
jmp 0x40af1b
mov dword [esp], 0
mov edx, edi
mov eax, 1
call fcn.00404550
jmp 0x40bad1
mov dword [esp], 0
mov ebx, 0x438860
mov esi, 0xbe
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov edi, dword [0x46a010]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.0044e045
sub esp, 0x14
jmp 0x409fc0
mov dword [esp], 1
jmp 0x40bc77
mov dword [esp], 0
lea esi, [ebx - 0x9c5f]
xor ebx, ebx
call fcn.004131b0
mov dword [esp], esi
call fcn.00413170
mov edi, dword [0x46a010]
mov dword [esp], edi
call sub.USER32.dll_GetMenu
sub esp, 4
xor ecx, ecx
cmp ebx, esi
mov dword [esp], eax
sete cl
lea edx, [ebx + 0x9c5f]
mov dword [esp + 4], edx
shl ecx, 3
inc ebx
mov dword [esp + 8], ecx
call sub.USER32.dll_CheckMenuItem
sub esp, 0xc
cmp ebx, 0xb
jle 0x40c0da
jmp 0x40bc9b
mov eax, 0xffffffff
mov ecx, 3
mov dword [esp + 8], eax
mov eax, 0x100c
mov dword [esp + 0xc], ecx
jmp 0x40a899
mov ebx, 0x460
mov dword [esp + 4], ebx
mov eax, dword [0x46a010]
mov dword [esp], eax
call sub.USER32.dll_GetDlgItem
sub esp, 8
xor edx, edx
mov ecx, 2
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
jmp 0x40bd0d
lea ebx, [ebp - 0x948]
mov edi, 0x149
lea esi, [ebp - 0x908]
mov dword [esp], ebx
call fcn.00412e00
mov byte [ebp - 0x92e], 0
mov edx, dword [0x46a010]
mov ecx, 0x4036b0
mov dword [ebp - 0x8e8], ecx
mov eax, 0x3c
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x904], edx
mov dword [ebp - 0x8fc], ebx
call fcn.00412e60
mov dword [ebp - 0x8f0], eax
mov dword [ebp - 0x8f4], edi
mov dword [esp], esi
call sub.COMDLG32.DLL_ChooseFontA
sub esp, 4
test eax, eax
jne 0x40c1d4
call fcn.00402820
jmp 0x409fc0
mov dword [esp], ebx
call fcn.00412dd0
mov eax, dword [0x46a190]
test eax, eax
je 0x40c1f0
mov dword [esp], eax
call sub.GDI32.dll_DeleteObject
sub esp, 4
mov dword [esp], ebx
call fcn.0042b490
mov dword [0x46a190], eax
test eax, eax
mov ebx, eax
je 0x40c1ca
mov ecx, dword [ebp - 0x8f0]
mov edi, 0xf0f0f0
mov dword [ebp - 0xce4], edi
cmp ecx, 0xffffff
cmove ecx, dword [ebp - 0xce4]
mov dword [ebp - 0xce4], ecx
mov eax, dword [0x45cee0]
mov edi, dword [0x46a010]
mov esi, dword [eax]
test esi, esi
je 0x40c9d0
xor esi, esi
jmp 0x40c277
mov eax, dword [eax + 4]
mov dword [esp + 8], ebx
mov edx, 1
mov ecx, 0x30
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0044e1c5
mov eax, dword [0x45cee0]
sub esp, 0x10
add esi, 0x14
mov ecx, dword [esi + eax]
test ecx, ecx
je 0x40c9d0
mov edx, dword [esi + eax + 8]
test edx, edx
je 0x40c269
add eax, esi
cmp dword [eax], 1
jne 0x40c240
mov eax, dword [eax + 4]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.USER32.dll_GetDlgItem
sub esp, 8
jmp 0x40c243
mov byte [ebp - 0x578], 0
mov ebx, dword [0x46a030]
mov dword [esp], ebx
lea ebx, [ebp - 0x578]
call fcn.00432e00
mov esi, eax
mov eax, dword [sym.imp.mameplib.dll_drivers]
mov edi, dword [eax + esi*4]
mov ecx, dword [edi + 8]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strcpy
call fcn.00428ba0
test eax, eax
je 0x40c6bc
mov dword [esp], 2
mov edx, ebx
mov eax, 1
call fcn.004042b0
test eax, eax
je 0x409fc0
mov dword [0x46a280], ebx
mov eax, esi
xor esi, esi
call fcn.004094d0
mov dword [0x46a280], esi
jmp 0x409fc0
xor eax, eax
cmp dword [0x45c044], 0
mov ebx, 0x9c73
sete al
mov dword [0x45c044], eax
mov dword [esp], eax
call fcn.00412b90
mov esi, dword [0x46a010]
mov dword [esp], esi
call sub.USER32.dll_GetMenu
sub esp, 4
cmp dword [0x45c044], 1
mov ecx, 0x9c73
mov dword [esp + 4], ecx
mov dword [esp], eax
sbb edi, edi
not edi
and edi, 8
mov dword [esp + 8], edi
call sub.USER32.dll_CheckMenuItem
sub esp, 0xc
cmp dword [0x45c044], 1
mov eax, 0x402
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
sbb edx, edx
not edx
and edx, 8
mov dword [esp + 0xc], edx
mov esi, dword [0x46a090]
mov dword [esp], esi
call fcn.0044e1c5
sub esp, 0x10
call fcn.00407300
jmp 0x40a5d0
mov dword [esp], 0
mov edi, 0x446600
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
xor ecx, ecx
mov edx, 0xa0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
mov ebx, dword [0x46a010]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0044e045
sub esp, 0x14
dec eax
jne 0x40a617
mov ecx, dword [0x46a030]
mov edi, 0x402330
mov ebx, 8
mov dword [esp], ecx
call fcn.00432890
call fcn.00407b20
call fcn.00412ce0
mov dword [ebp - 0xcc0], eax
lea eax, [ebp - 0xcc0]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov edx, dword [0x46a070]
mov dword [esp + 8], edx
mov esi, dword [0x46e140]
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_bsearch
test eax, eax
mov edx, 0xffffffff
je 0x40c440
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.00432ef0
jmp 0x40a617
xor eax, eax
jmp 0x40be85
test ebx, ebx
jmp 0x40be7a
mov ecx, 3
mov eax, 0xffffffff
mov ebx, 0x100c
mov dword [esp + 0xc], ecx
xor esi, esi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov edi, dword [0x46a030]
mov dword [esp], edi
call fcn.0044e1c5
sub esp, 0x10
xor edx, edx
mov ecx, 0x1028
mov dword [esp + 0xc], esi
mov ebx, eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov eax, dword [0x46a030]
mov dword [esp], eax
call fcn.0044e1c5
sub esp, 0x10
sub ebx, eax
jmp 0x40a6fe
mov dword [esp], 0
call fcn.00430f30
mov ecx, dword [0x46a130]
test ecx, ecx
jne 0x40a55a
mov ecx, 3
mov edx, 0xffffffff
mov ebx, 0x100c
mov dword [esp + 0xc], ecx
lea edi, [ebp - 0x58]
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov esi, dword [0x46a030]
mov ebx, 1
mov dword [esp], esi
call fcn.0044e1c5
mov dword [ebp - 0x54], eax
sub esp, 0x10
mov ecx, 0x104b
mov dword [ebp - 0x50], 0
xor eax, eax
mov dword [ebp - 0x58], 2
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov edx, dword [0x46a030]
mov dword [esp], edx
call fcn.0044e1c5
sub esp, 0x10
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x3c]
mov dword [esp + 4], esi
mov edi, dword [0x46a0f0]
mov dword [esp], edi
call sub.COMCTL32.DLL_ImageList_GetIcon
mov ebx, eax
mov eax, dword [0x46a030]
sub esp, 0xc
mov dword [esp], eax
call fcn.00432e00
mov dword [esp + 8], eax
xor ecx, ecx
mov edx, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov esi, dword [ebp - 0xccc]
mov dword [esp + 4], esi
mov edi, dword [0x46a020]
mov dword [esp], edi
call fcn.0043ec30
jmp 0x40b151
mov byte [ebp - 0xa58], 0
mov edi, str.MAME32_s
mov ecx, dword [sym.imp.mameplib.dll_options]
mov ebx, dword [sym.imp.mameplib.dll_ui_lang_info]
mov edx, dword [ecx + 0x20]
lea esi, [edx + edx*4]
shl esi, 2
add esi, ebx
mov eax, dword [esi + 4]
mov dword [esp + 4], edi
lea ebx, [ebp - 0xa58]
mov dword [esp], ebx
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov dword [esp], ebx
call fcn.00428e50
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
call fcn.00428ba0
test eax, eax
je 0x40c8cc
mov dword [esp], 5
mov edx, ebx
mov eax, 1
call fcn.004042b0
test eax, eax
je 0x40a5d0
mov dword [esp], ebx
mov edi, 0x46073f
mov dword [esp + 4], edi
call sub.msvcrt.dll_fopen
test eax, eax
mov edi, eax
je 0x40cb5b
mov eax, dword [sym.imp.mameplib.dll_drivers]
xor esi, esi
cmp dword [eax], 0
je 0x40c99e
mov eax, dword [eax + esi*4]
mov ebx, dword [eax + 0x10]
mov dword [esp], 1
mov dword [esp + 4], ebx
call dword [sym.imp.mameplib.dll_lang_message]
mov edx, dword [sym.imp.mameplib.dll_drivers]
mov ecx, dword [edx + esi*4]
mov ebx, eax
mov eax, dword [ecx + 0x10]
mov dword [esp], 2
mov dword [esp + 4], eax
call dword [sym.imp.mameplib.dll_lang_message]
mov edx, dword [sym.imp.mameplib.dll_drivers]
mov ecx, dword [edx + esi*4]
mov edx, dword [ecx + 0x18]
cmp dword [ecx + 0x10], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edx
cmove eax, ebx
inc esi
mov dword [esp + 0x10], eax
mov edx, dword [ecx + 8]
mov eax, str._s_t_s_t_s_t_s_n
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], edx
call sub.msvcrt.dll_fprintf
mov eax, dword [sym.imp.mameplib.dll_drivers]
mov ebx, dword [eax + esi*4]
test ebx, ebx
jmp 0x40c63d
mov dword [esp], 2
mov edx, ebx
mov eax, 1
call fcn.00404550
jmp 0x40c2ee
mov dword [esp], 0xb
lea esi, [ebp - 0x998]
lea ebx, [ebp - 0xaa8]
mov dword [esp + 4], esi
call fcn.00429950
mov dword [esp + 4], ebx
xor ecx, ecx
mov edx, 0xb
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], 0
call dword [sym.imp.mameplib.dll_mame_fopen]
test eax, eax
mov esi, eax
je 0x40cb14
mov dword [esp + 4], edi
mov ecx, fcn.00404830
mov edx, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], eax
call dword [sym.imp.mameplib.dll_state_save_check_file]
mov dword [esp], esi
mov ebx, eax
call dword [sym.imp.mameplib.dll_mame_fclose]
test ebx, ebx
jne 0x409fc0
mov edi, 0x2d
lea esi, [ebp - 0xba8]
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_strrchr
cmp byte [eax + 1], 0
lea edx, [eax + 1]
je 0x40c77d
mov dword [0x46a2a0], edx
lea eax, [ebp - 0x998]
mov dword [0x46a2d0], eax
mov eax, dword [ebp - 0xcdc]
xor ebx, ebx
call fcn.004094d0
mov dword [0x46a2d0], ebx
xor edx, edx
mov dword [0x46a2a0], edx
jmp 0x409fc0
mov dword [esp], 3
mov edx, ebx
mov eax, 1
call fcn.00404550
jmp 0x40ad3f
cmp edi, 0x300
jne 0x40a5d0
mov dword [esp], 5
mov ecx, 0x46062a
mov dword [esp + 4], ecx
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp], eax
call fcn.00429af0
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x40c80f
mov dword [esp], 0x4603fd
call fcn.00429af0
mov dword [esp + 4], eax
mov dword [esp], 0x46dc20
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x40c865
mov dword [esp], 5
mov edi, 0x46062a
mov dword [esp + 4], edi
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp], eax
call fcn.00429af0
mov dword [esp + 4], eax
mov dword [esp], 0x46dc20
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x40cb41
mov dword [esp], 0x4603fd
call fcn.00429af0
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x40cb41
mov dword [esp + 4], ebx
mov dword [esp], 0x46dc20
call sub.msvcrt.dll_wcscpy
jmp 0x40a5d0
mov ebx, edx
mov edx, dword [ebx]
add ebx, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
mov edx, ecx
and edx, 0x80808080
je 0x40c882
mov edi, edx
lea esi, [ebx + 2]
shr edi, 0x10
and ecx, 0x8080
lea eax, [ebp - 0x998]
cmove edx, edi
mov cl, dl
cmove ebx, esi
add cl, dl
sbb ebx, 3
sub ebx, eax
xor ecx, ecx
mov byte [ebx + ebp - 0x999], cl
jmp 0x40b8e8
mov dword [esp], 5
mov edx, ebx
mov eax, 1
call fcn.00404550
jmp 0x40c610
xor ecx, ecx
xor eax, eax
mov ebx, 0x1116
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov edi, dword [0x46a050]
mov dword [esp], edi
call fcn.0044e1c5
sub esp, 0x10
jmp 0x409fc0
mov ebx, esi
mov edx, dword [ebx]
add ebx, 4
lea ecx, [edx - 0x1010101]
not edx
and ecx, edx
mov edx, ecx
and edx, 0x80808080
je 0x40c911
mov eax, edx
lea edi, [ebx + 2]
shr eax, 0x10
and ecx, 0x8080
cmove edx, eax
mov al, dl
cmove ebx, edi
add al, dl
sbb ebx, 3
sub ebx, esi
xor ecx, ecx
mov byte [ebx + ebp - 0x579], cl
jmp 0x40bb6b
lea ebx, [ebp - 0xba8]
mov esi, dword [ebx]
add ebx, 4
lea ecx, [esi - 0x1010101]
not esi
and ecx, esi
mov edx, ecx
and edx, 0x80808080
je 0x40c95b
mov eax, edx
lea edi, [ebx + 2]
shr eax, 0x10
and ecx, 0x8080
mov esi, ebx
lea ecx, [ebp - 0xba8]
cmove edx, eax
mov bl, dl
cmove esi, edi
add bl, dl
sbb esi, 3
sub esi, ecx
jmp 0x40b911
mov dword [esp], edi
call sub.msvcrt.dll_fclose
jmp 0x40a5d0
mov dword [esp], eax
call fcn.00412f50
test eax, eax
jne 0x40b780
mov ebx, dword [0x46a160]
mov dword [esp], ebx
call fcn.00446bd0
jmp 0x40b780
xor esi, esi
mov dword [esp + 4], esi
mov ebx, dword [0x46a030]
mov dword [esp], ebx
call sub.USER32.dll_GetDlgItem
sub esp, 8
test eax, eax
je 0x40c9f3
mov dword [esp], eax
call fcn.0042a170
mov eax, 5
mov dword [esp + 4], eax
mov edi, dword [0x46a010]
mov dword [esp], edi
jmp 0x40ca2c
cld
mov edi, str.SysTreeView32
lea esi, [ebp - 0x8c8]
mov ecx, 0xe
repe cmpsb byte [esi], byte es:[edi]
je 0x40cab4
mov dword [esp], ebx
mov ecx, 2
mov dword [esp + 4], ecx
call sub.USER32.dll_GetWindow
sub esp, 8
test eax, eax
mov ebx, eax
je 0x40ca97
mov dword [esp], eax
mov ecx, pe_nt_image_headers32
lea edx, [ebp - 0x8c8]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call sub.USER32.dll_GetClassNameA
sub esp, 0xc
test eax, eax
je 0x40ca20
cld
mov edi, 0x460494
lea esi, [ebp - 0x8c8]
mov ecx, 0xe
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ca07
mov edi, dword [ebp - 0xce4]
xor edx, edx
mov eax, 0x1024
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp + 0xc], edi
mov dword [esp], ebx
call fcn.0044e1c5
sub esp, 0x10
jmp 0x40ca20
mov ebx, dword [ebp - 0x8f0]
mov dword [esp], ebx
call fcn.00412e30
call fcn.00407b20
call fcn.00402820
jmp 0x409fc0
mov esi, dword [ebp - 0xce4]
xor edi, edi
mov edx, 0x111e
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
mov eax, dword [0x46a050]
mov dword [esp], eax
jmp 0x40ca8d
mov dword [esp], ebx
call sub.msvcrt.dll_wcslen
test eax, eax
jne 0x40a5d0
mov dword [esp], 5
mov eax, 0x46062a
mov dword [esp + 4], eax
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp], eax
call fcn.00429af0
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
jmp 0x40b55b
mov dword [esp], 5
mov eax, str.Could_not_open__s_as_a_valid_savestate_file.
lea edi, [ebp - 0x358]
mov dword [esp + 4], eax
call dword [sym.imp.mameplib.dll_lang_message]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00404830
jmp 0x409fc0
mov dword [esp + 4], ebx
mov dword [esp], 0x46dc20
call sub.msvcrt.dll_wcscpy
call fcn.00407b20
jmp 0x40a5d0
mov dword [esp], 0
call sub.msvcrt.dll_fclose
jmp 0x40a5d0