Function at 0x45de80
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x114
push ebx
push ebp
push esi
push edi
push 0x4f6a34
push str.data_mugen.cfg
call fcn.00466c20
mov esi, eax
add esp, 8
test esi, esi
je 0x45debb
push 0
mov ecx, esi
call fcn.00469bc0
mov ebp, eax
add esp, 4
mov eax, esi
call fcn.00466ee0
test ebp, ebp
jne 0x45deda
push str.data_mugen.cfg
push str.Cant_open_config_file__s._n
call fcn.0040c140
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov edi, str.Rules
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45df05
push str.Cant_access__Rules__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
push str.gametype
push ebp
call fcn.0046a5e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x45df33
push str.Cant_get_gametype._n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
movsx eax, byte [esi]
lea ecx, [eax - 1]
cmp ecx, 0x7e
ja 0x45df48
push eax
call dword [sym.imp.MSVCR90.dll_tolower]
add esp, 4
mov ebx, 1
cmp eax, 0x6d
je 0x45df83
cmp eax, 0x76
je 0x45df72
push esi
push str.Invalid_gametype:__s_n
call fcn.0040c140
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
mov dword [eax + 0x11f78], 0
jmp 0x45df8e
mov eax, dword [0x5040e8]
mov dword [eax + 0x11f78], ebx
fld dword [0x4fd958]
lea esi, [eax + 0x11f7c]
fstp dword [esi]
push str.default.attack.lifetopowermul
fld dword [0x4fd8ac]
push ebp
fstp dword [eax + 0x11f80]
fld1
fstp dword [eax + 0x11f84]
call fcn.0046a5e0
add esp, 8
test eax, eax
je 0x45dfce
push eax
call dword [sym.imp.MSVCR90.dll_atof]
fstp dword [esi]
add esp, 4
mov esi, dword [0x5040e8]
push str.default.gethit.lifetopowermul
push ebp
add esi, 0x11f80
call fcn.0046a5e0
add esp, 8
test eax, eax
je 0x45dff8
push eax
call dword [sym.imp.MSVCR90.dll_atof]
fstp dword [esi]
add esp, 4
mov esi, dword [0x5040e8]
push str.super.targetdefencemul
push ebp
add esi, 0x11f84
call fcn.0046a5e0
add esp, 8
test eax, eax
je 0x45e022
push eax
call dword [sym.imp.MSVCR90.dll_atof]
fstp dword [esi]
add esp, 4
mov edi, str.config
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45e04d
push str.Cant_access__Config__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
mov dword [eax + 0x12930], 0x3c
mov dword [eax + 0x12934], ebx
mov ecx, 0x100
lea edi, [esp + 0x20]
mov edx, str.language
mov eax, ebp
mov dword [esp + 0x14], 0x280
mov dword [esp + 0x10], 0x1e0
mov byte [esp + 0x20], 0
call fcn.0040c360
cmp byte [esp + 0x20], 0
jne 0x45e0eb
push 3
push 0x504744
push 0x59
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x45e0c4
push str.Autodetected_system_language.
call fcn.0040c4a0
push 0xff
push 0x504744
mov edx, edi
push edx
jmp 0x45e0dd
push str.Unable_to_detect_system_language.
call fcn.0040c4a0
push 0xff
push 0x4fae7c
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x30], 0
call dword [sym.imp.MSVCR90.dll_strncat]
add esp, 0x10
lea ecx, [esp + 0x20]
push ecx
push str.Setting_language___s_._n
call fcn.0040c4a0
lea eax, [esp + 0x28]
call fcn.00479580
lea edx, [esp + 0x1c]
push edx
mov eax, str.gamewidth
mov ecx, ebp
call fcn.0046a900
lea eax, [esp + 0x1c]
push eax
mov eax, str.gameheight
mov ecx, ebp
call fcn.0046a900
fild dword [esp + 0x24]
mov ebx, dword [0x5040e8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x128a8], eax
dec eax
cdq
sub eax, edx
mov dword [ebx + 0x128ac], ecx
sar eax, 1
fstp qword [ebx + 0x12888]
fild dword [esp + 0x20]
mov dword [esp + 0x28], eax
lea esi, [ebx + 0x12888]
lea eax, [ecx - 1]
cdq
fstp qword [esi + 8]
fild dword [esp + 0x28]
sub eax, edx
sar eax, 1
mov dword [esp + 0x28], eax
fstp qword [esi + 0x10]
mov ecx, 8
mov edi, 0x5040a0
fild dword [esp + 0x28]
add ebx, 0x12930
push ebx
mov eax, str.gamespeed
fstp qword [esi + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x12934
push ecx
mov eax, str.drawshadows
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x12938
push edx
mov eax, str.afterimagemax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov esi, 1
add esp, 0x1c
cmp dword [eax + 0x12938], esi
jge 0x45e1e6
mov dword [eax + 0x12938], esi
add eax, 0x1293c
push eax
mov eax, str.layeredspritemax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, 0x20
add esp, 4
cmp dword [eax + 0x1293c], ecx
jge 0x45e213
mov dword [eax + 0x1293c], ecx
add eax, 0x12940
push eax
mov eax, str.spritedecompressionbuffersize
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, 0x80
add esp, 4
cmp dword [eax + 0x12940], ecx
jge 0x45e240
mov dword [eax + 0x12940], ecx
add eax, 0x12944
push eax
mov eax, str.explodmax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov edi, 8
add esp, 4
cmp dword [eax + 0x12944], edi
jge 0x45e26d
mov dword [eax + 0x12944], edi
add eax, 0x12948
push eax
mov eax, str.sysexplodmax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add esp, 4
cmp dword [eax + 0x12948], edi
jge 0x45e295
mov dword [eax + 0x12948], edi
add eax, 0x1294c
push eax
mov eax, str.helpermax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, 4
add esp, 4
cmp dword [eax + 0x1294c], ecx
jge 0x45e2c2
mov dword [eax + 0x1294c], ecx
mov ecx, 0x38
cmp dword [eax + 0x1294c], ecx
jle 0x45e2d5
mov dword [eax + 0x1294c], ecx
add eax, 0x12950
push eax
mov eax, str.playerprojectilemax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, 5
add esp, 4
cmp dword [eax + 0x12950], ecx
jge 0x45e302
mov dword [eax + 0x12950], ecx
add eax, 0x12954
push eax
mov eax, str.playerpalmax
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, 0xc
add esp, 4
cmp dword [eax + 0x12954], ecx
jge 0x45e32f
mov dword [eax + 0x12954], ecx
add eax, 0x12958
push eax
mov eax, str.firstrun
mov ecx, ebp
call fcn.0046a900
add esp, 4
mov edi, str.Debug
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
je 0x45e416
mov eax, dword [0x5040e8]
add eax, 0x130cc
push eax
mov eax, str.debug
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x130d4
push ecx
mov eax, str.allowdebugmode
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x130d8
push edx
mov eax, str.allowdebugkeys
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
xor ebx, ebx
add esp, 0xc
cmp dword [eax + 0x130cc], ebx
je 0x45e3ba
mov dword [eax + 0x130d4], esi
add eax, 0x130f0
push eax
mov eax, str.speedup
mov ecx, ebp
call fcn.0046a900
push str.startstage
push ebp
call fcn.0046a5e0
add esp, 0xc
cmp eax, ebx
je 0x45e3f8
push 0x200
push eax
mov eax, dword [0x5040e8]
add eax, 0x12e9c
push eax
call dword [sym.imp.MSVCR90.dll_strncpy]
add esp, 0xc
mov ecx, dword [0x5040e8]
add ecx, 0x128d8
push ecx
mov eax, str.HideDevelopmentBuildBanner
mov ecx, ebp
call fcn.0046a900
add esp, 4
jmp 0x45e418
xor ebx, ebx
mov edi, str.video
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45e443
push str.Cant_access__Video__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
mov edx, dword [esp + 0x14]
lea ecx, [eax + 0x128b0]
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
mov dword [eax + 0x128d0], ebx
mov dword [eax + 0x128b4], edx
mov dword [eax + 0x128e0], esi
mov dword [eax + 0x128e4], esi
push ecx
mov eax, str.width
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x128b4
push eax
mov eax, str.height
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x128b8
push ecx
mov eax, str.depth
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x128dc
push edx
mov eax, str.vretrace
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x128e0
push eax
mov eax, str.keepaspect
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x128e4
push ecx
mov eax, str.filterindexed
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x128d4
push edx
mov eax, str.fullscreen
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add esp, 0x1c
cmp dword [eax + 0x128d4], ebx
je 0x45e528
or dword [eax + 0x128d0], 2
jmp 0x45e52f
and dword [eax + 0x128d0], 0xfffffffd
push str.rendermode
push ebp
mov dword [eax + 0x128bc], ebx
call fcn.0046a5e0
mov edi, dword [sym.imp.MSVCR90.dll__stricmp]
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x45e5f0
push 0x4fb014
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e572
mov eax, dword [0x5040e8]
mov dword [eax + 0x128bc], ebx
jmp 0x45e5f5
push str.opengl
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e592
mov eax, dword [0x5040e8]
mov dword [eax + 0x128bc], 2
jmp 0x45e5f5
push str.openglscreen
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e5b2
mov eax, dword [0x5040e8]
mov dword [eax + 0x128bc], 1
jmp 0x45e5f5
push str.directx
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e5d5
mov eax, dword [0x5040e8]
or dword [eax + 0x128d0], 1
mov dword [eax + 0x128bc], ebx
jmp 0x45e5f5
push esi
push str.Invalid_RenderMode:__s_n
call fcn.0040c140
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
cmp dword [eax + 0x128bc], 2
jne 0x45e613
add eax, 0x128c0
push eax
mov eax, str.safemode
mov ecx, ebp
call fcn.0046a900
add esp, 4
push str.blitmode
push ebp
call fcn.0046a5e0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x45e660
movsx eax, byte [esi]
call fcn.004614b0
sub eax, 0x6e
je 0x45e660
sub eax, 2
je 0x45e654
push esi
push str.Invalid_BlitMode:__s_n
call fcn.0040c140
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
or dword [eax + 0x128d0], 4
lea eax, [esp + 0x10]
push eax
mov eax, str.resizable
mov ecx, ebp
mov dword [esp + 0x14], ebx
call fcn.0046a900
mov eax, dword [0x5040e8]
add esp, 4
mov esi, 0x10
cmp dword [esp + 0x10], ebx
je 0x45e68e
or dword [eax + 0x128d0], esi
add eax, 0x128c8
push eax
mov eax, str.stagefit
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x128cc
push ecx
mov eax, str.systemfit
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov ecx, dword [eax + 0x128bc]
add esp, 8
cmp ecx, ebx
je 0x45e6d0
cmp ecx, 1
jne 0x45e6e2
mov dword [eax + 0x128b8], esi
mov dword [eax + 0x128c8], ebx
mov dword [eax + 0x128cc], ebx
cmp ecx, 2
jne 0x45e6f8
or dword [eax + 0x128d0], 4
mov dword [eax + 0x128b8], 0x20
cmp dword [eax + 0x128c0], ebx
je 0x45e722
and dword [eax + 0x128d0], 0xffffffef
mov dword [eax + 0x128c8], ebx
mov dword [eax + 0x128cc], ebx
cmp ecx, 2
jne 0x45e722
mov dword [eax + 0x128c4], 1
mov edi, str.sound
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45e74d
push str.Cant_access__Sound__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
fld qword [0x4fd950]
fstp qword [eax + 0x11e88]
lea ecx, [eax + 0x11e7c]
fld qword [0x4fd948]
mov dword [ecx], 1
fstp qword [eax + 0x11e80]
mov dword [eax + 0x12910], 1
fld qword [0x4fd940]
mov dword [eax + 0x12914], 0xa0
fstp qword [eax + 0x11e90]
push ecx
mov eax, str.sound
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x12910
push edx
mov eax, str.stereoeffects
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x12914
push eax
mov eax, str.panningwidth
mov ecx, ebp
call fcn.0046a900
lea ecx, [esp + 0x1c]
push ecx
mov eax, str.reversestereo
mov ecx, ebp
call fcn.0046a900
add esp, 0x10
test eax, eax
je 0x45e7fe
xor edx, edx
cmp dword [esp + 0x10], ebx
sete dl
lea edx, [edx + edx - 1]
mov dword [0x50016c], edx
mov eax, dword [0x5040e8]
push str.SFXResampleMethod
push ebp
mov dword [eax + 0x12920], 1
call fcn.0046a5e0
mov edi, dword [sym.imp.MSVCR90.dll__stricmp]
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x45e863
push str.libresample
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e847
mov eax, dword [0x5040e8]
mov dword [eax + 0x12920], 1
jmp 0x45e868
push 0x4fb110
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e863
mov eax, dword [0x5040e8]
mov dword [eax + 0x12920], ebx
jmp 0x45e868
mov eax, dword [0x5040e8]
cmp dword [eax + 0x12920], 1
jne 0x45e88c
lea esi, [eax + 0x12924]
push ebx
mov eax, str.SFXResampleQuality
mov ecx, ebp
call fcn.0046a930
mov eax, dword [0x5040e8]
add esp, 4
push str.BGMResampleMethod
push ebp
mov dword [eax + 0x12928], 1
call fcn.0046a5e0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x45e8e6
push str.libresample
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e8ca
mov eax, dword [0x5040e8]
mov dword [eax + 0x12928], 1
jmp 0x45e8eb
push 0x4fb110
push esi
call edi
add esp, 8
test eax, eax
jne 0x45e8e6
mov eax, dword [0x5040e8]
mov dword [eax + 0x12928], ebx
jmp 0x45e8eb
mov eax, dword [0x5040e8]
cmp dword [eax + 0x12928], 1
jne 0x45e90f
lea esi, [eax + 0x1292c]
push ebx
mov eax, str.BGMResampleQuality
mov ecx, ebp
call fcn.0046a930
mov eax, dword [0x5040e8]
add esp, 4
fld qword [0x4fd818]
sub esp, 8
lea esi, [eax + 0x11e80]
fstp qword [esp]
mov eax, str.mastervolume
mov ecx, ebp
call fcn.0046a8d0
fld qword [0x4fd818]
mov esi, dword [0x5040e8]
fstp qword [esp]
add esi, 0x11e88
mov eax, str.wavvolume
mov ecx, ebp
call fcn.0046a8d0
fld qword [0x4fd818]
mov esi, dword [0x5040e8]
fstp qword [esp]
add esi, 0x11e90
mov eax, str.bgmvolume
mov ecx, ebp
call fcn.0046a8d0
mov esi, dword [0x5040e8]
push 0xac44
add esi, 0x128fc
mov eax, str.samplerate
mov ecx, ebp
call fcn.0046a930
mov esi, dword [0x5040e8]
push 2
add esi, 0x12908
mov eax, str.channels
mov ecx, ebp
call fcn.0046a930
mov esi, dword [0x5040e8]
push 0x10
add esi, 0x12900
mov eax, str.bitdepth
mov ecx, ebp
call fcn.0046a930
mov esi, dword [0x5040e8]
push 0xb
add esi, 0x12904
mov eax, str.buffersize
mov ecx, ebp
call fcn.0046a930
mov eax, dword [0x5040e8]
or esi, 0xffffffff
mov dword [eax + 0x128e8], esi
add eax, 0x128f0
mov dword [eax], 8
push eax
mov eax, str.wavchannels
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
mov dword [ecx + 0x128ec], esi
add esp, 0x1c
mov edi, str.music
mov ecx, ebp
call fcn.0046a2f0
cmp eax, esi
je 0x45ea36
push ebp
call fcn.0046fd30
mov edx, dword [0x5040e8]
add esp, 4
mov dword [edx + 0x1290c], eax
jmp 0x45ea41
mov eax, dword [0x5040e8]
mov dword [eax + 0x1290c], ebx
mov edi, str.Misc
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45ea6c
push str.Cant_access__Misc__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
add eax, 0x1295c
mov dword [eax], ebx
push eax
mov eax, str.playercache
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
mov esi, 2
add dword [eax + 0x1295c], esi
add eax, 0x12960
mov dword [eax], ebx
push eax
mov eax, str.precache
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add esp, 8
cmp dword [eax + 0x128bc], esi
jne 0x45eabf
mov dword [eax + 0x12960], ebx
lea ecx, [esp + 0x10]
push ecx
mov eax, str.bufferedread
mov ecx, ebp
call fcn.0046a900
add esp, 4
test eax, eax
mov eax, dword [0x5040e8]
je 0x45eaf2
mov ecx, dword [esp + 0x10]
mov dword [0x504274], ecx
mov dword [0x5044dc], ecx
mov dword [eax + 0x12964], ecx
add eax, 0x12968
push eax
mov eax, str.unloadsystem
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x1296c
push edx
mov eax, str.pauseondefocus
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
push str.sfxbackgroundmode
push ebp
mov dword [eax + 0x12918], 1
call fcn.0046a5e0
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x45eb82
mov edi, dword [sym.imp.MSVCR90.dll__stricmp]
push str.mute
push esi
call edi
add esp, 8
test eax, eax
jne 0x45eb63
mov ecx, dword [0x5040e8]
mov dword [ecx + 0x12918], ebx
jmp 0x45eb82
push str.play
push esi
call edi
add esp, 8
test eax, eax
jne 0x45eb82
mov edx, dword [0x5040e8]
mov dword [edx + 0x12918], 1
mov eax, dword [0x5040e8]
push str.bgmbackgroundmode
mov edi, 2
push ebp
mov dword [eax + 0x1291c], edi
call fcn.0046a5e0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x45ec04
mov esi, dword [sym.imp.MSVCR90.dll__stricmp]
push str.pause
push ebx
call esi
add esp, 8
test eax, eax
jne 0x45ebc9
mov ecx, dword [0x5040e8]
mov dword [ecx + 0x1291c], eax
jmp 0x45ec04
push str.play
push ebx
call esi
add esp, 8
test eax, eax
jne 0x45ebe6
mov edx, dword [0x5040e8]
mov dword [edx + 0x1291c], edi
jmp 0x45ec04
push str.mute
push ebx
call esi
add esp, 8
test eax, eax
jne 0x45ec04
mov eax, dword [0x5040e8]
mov dword [eax + 0x1291c], 1
mov ecx, dword [0x5040e8]
add ecx, 0x12970
push ecx
mov eax, str.forcestagezoomout
mov ecx, ebp
call fcn.0046a8a0
add esp, 4
mov edi, str.Arcade
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45ec4b
push str.Cant_access__Arcade__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov edx, dword [0x5040e8]
add edx, 0x12978
push edx
mov eax, str.ai.randomcolor
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x1297c
push eax
mov eax, str.ai.cheat
mov ecx, ebp
call fcn.0046a900
mov esi, dword [esp + 0x24]
add esp, 8
xor edi, edi
mov eax, edi
sub eax, 0
je 0x45ecbb
sub eax, 1
je 0x45eca8
sub eax, 1
jne 0x45eccc
mov esi, dword [0x5040e8]
mov ebx, str.survival
add esi, 0x129a0
jmp 0x45eccc
mov esi, dword [0x5040e8]
mov ebx, str.team
add esi, 0x12990
jmp 0x45eccc
mov esi, dword [0x5040e8]
mov ebx, str.arcade
add esi, 0x12980
push ebx
lea ecx, [esp + 0x24]
push str._s.AIramp.start
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
lea edx, [esi + 4]
push edx
push esi
push 0x4f09dc
lea eax, [esp + 0x38]
mov ecx, ebp
call fcn.0046a960
push ebx
lea eax, [esp + 0x3c]
push str._s.AIramp.end
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
lea ecx, [esi + 0xc]
push ecx
lea edx, [esi + 8]
push edx
push 0x4f09dc
lea eax, [esp + 0x50]
mov ecx, ebp
call fcn.0046a960
inc edi
add esp, 0x30
cmp edi, 3
jl 0x45ec84
mov edi, str.Input
mov ecx, ebp
call fcn.0046a2f0
cmp eax, 0xffffffff
jne 0x45ed53
push str.Cant_access__Input__n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
add eax, 0x12130
push eax
mov eax, str.p1.usekeyboard
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x12134
push ecx
mov eax, str.p2.usekeyboard
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x12140
push edx
mov eax, str.p1.joystick.type
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x12144
push eax
mov eax, str.p2.joystick.type
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
xor ecx, ecx
add esp, 0x10
cmp dword [eax + 0x12140], ecx
setne cl
xor edx, edx
cmp dword [eax + 0x12144], edx
setne dl
mov dword [eax + 0x12138], ecx
mov dword [eax + 0x1213c], edx
test ecx, ecx
jne 0x45ede5
test edx, edx
je 0x45edea
mov ecx, 1
add eax, 0x12148
mov dword [eax], ecx
push eax
mov eax, str.forcefeedback
mov ecx, ebp
call fcn.0046a900
mov ecx, dword [0x5040e8]
add ecx, 0x1214c
push ecx
mov eax, str.psxdelay
mov ecx, ebp
call fcn.0046a900
mov edx, dword [0x5040e8]
add edx, 0x12150
push edx
mov eax, str.inputdirmode
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add eax, 0x12974
push eax
mov eax, str.anykeyunpauses
mov ecx, ebp
call fcn.0046a900
mov eax, dword [0x5040e8]
add esp, 0x10
cmp dword [eax + 0x12130], 0
je 0x45ee8d
lea ebx, [eax + 0x11f88]
mov eax, str.p1_keys
mov esi, ebp
call fcn.0045fa30
test eax, eax
jne 0x45ee88
push str.Cant_read_p1_key_config._n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
mov ecx, 1
mov edi, 0x200
jmp 0x45eea0
cmp dword [eax + ecx*4 + 0x11f88], 0
jne 0x45eeb1
mov dword [eax + ecx*4 + 0x11f88], edi
inc ecx
cmp ecx, 0xd
jl 0x45eea0
cmp dword [eax + 0x12134], 0
je 0x45eef5
lea ebx, [eax + 0x11fbc]
mov eax, str.p2_keys
mov esi, ebp
call fcn.0045fa30
test eax, eax
jne 0x45eef0
push str.Cant_read_p2_key_config._n
call fcn.0040c140
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov eax, dword [0x5040e8]
mov ecx, 1
lea ebx, [ebx]
cmp dword [eax + ecx*4 + 0x11fbc], 0
jne 0x45ef11
mov dword [eax + ecx*4 + 0x11fbc], edi
inc ecx
cmp ecx, 0xd
jl 0x45ef00
lea esi, [eax + 0x120c0]
lea edi, [eax + 0x120f4]
mov dword [eax + 0x120c4], 1
mov dword [eax + 0x120cc], 2
mov dword [eax + 0x120d0], 3
mov dword [eax + 0x120c8], 4
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x20]
push str.P1_joystick
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov ebx, dword [0x5040e8]
add ebx, 0x120c0
lea eax, [esp + 0x28]
mov esi, ebp
call fcn.0045fa30
lea edx, [esp + 0x28]
push str.P2_joystick
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
mov ebx, dword [0x5040e8]
add esp, 0x10
add ebx, 0x120f4
lea eax, [esp + 0x20]
call fcn.0045fa30
mov ebx, dword [0x5040e8]
cmp dword [ebx + 0x12138], 0
lea esi, [ebx + 0x120c0]
mov dword [esp + 0x18], esi
lea edi, [ebx + 0x12058]
mov dword [esp + 0x10], edi
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x120f4]
lea edi, [ebx + 0x1208c]
mov dword [esp + 0x1c], esi
mov ecx, 0xd
mov dword [esp + 0x14], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
jne 0x45eff7
push 0x34
push 0
push esi
call sub.MSVCR90.dll_memset
add esp, 0xc
cmp dword [ebx + 0x1213c], 0
mov edi, dword [esp + 0x14]
jne 0x45f011
push 0x34
push 0
push edi
call sub.MSVCR90.dll_memset
add esp, 0xc
mov eax, 1
cmp dword [esi + eax*4], 0
jne 0x45f023
mov dword [esi + eax*4], 0x80
inc eax
cmp eax, 0xd
jl 0x45f016
mov eax, 1
mov edi, edi
cmp dword [edi + eax*4], 0
jne 0x45f03d
mov dword [edi + eax*4], 0x80
inc eax
cmp eax, 0xd
jl 0x45f030
mov ecx, dword [esp + 0x18]
mov eax, 1
lea esp, [esp]
cmp dword [ecx + eax*4], 0
jne 0x45f05d
mov dword [ecx + eax*4], 0x80
inc eax
cmp eax, 0xd
jl 0x45f050
mov ecx, dword [esp + 0x1c]
mov eax, 1
lea esp, [esp]
cmp dword [ecx + eax*4], 0
jne 0x45f07d
mov dword [ecx + eax*4], 0x80
inc eax
cmp eax, 0xd
jl 0x45f070
mov ebx, ebp
call fcn.00469a50
mov eax, dword [0x5040e8]
cmp dword [eax + 0x12958], 0
je 0x45f0d9
mov eax, str.data_mugen.cfg
call fcn.00469b80
mov ebx, eax
test ebx, ebx
je 0x45f0d9
mov edi, str.Config
mov ecx, ebx
call fcn.0046a2f0
push str.0987654321
mov edx, str.FirstRun
mov ecx, ebx
call fcn.0046ac60
add esp, 4
mov ecx, str.data_mugen.cfg
mov eax, ebx
call fcn.0046a150
call fcn.00469a50
mov eax, 0x504740
call fcn.0046b1d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x114
ret