Function at 0x403ec0
Capabilities:
Get geographical location

Disassembly:
mov eax, dword [esp + 4]
push ebp
push 0x4ecdf0
push eax
call fcn.004e0af0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x403ee0
mov eax, 1
pop ebp
ret
push esi
push edi
push ebp
push 0xff
push 0x50c8a0
call fcn.004e1148
add esp, 0xc
test eax, eax
je 0x404764
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x50c8a0
repne scasb al, byte es:[edi]
not ecx
mov al, byte [ecx + 0x50c89e]
dec ecx
cmp al, 0xa
jne 0x403f1d
mov byte [ecx + 0x50c89f], 0
or ecx, 0xffffffff
xor eax, eax
mov edi, str.fullscreen
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.fullscreen
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x403f64
or ecx, 0xffffffff
mov edi, str.fullscreen
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b588], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.bTripleBuffer
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.bTripleBuffer
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x403fab
or ecx, 0xffffffff
mov edi, str.bTripleBuffer
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b598], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.any_size
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.any_size
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x403ff2
or ecx, 0xffffffff
mov edi, str.any_size
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec45c], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.width
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.width
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404039
or ecx, 0xffffffff
mov edi, str.width
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b58c], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.height
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.height
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404080
or ecx, 0xffffffff
mov edi, str.height
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b590], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.depth
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.depth
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4040c7
or ecx, 0xffffffff
mov edi, str.depth
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b594], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.force_depth
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.force_depth
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x40410e
or ecx, 0xffffffff
mov edi, str.force_depth
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b59c], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.brightness
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.brightness
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404156
or ecx, 0xffffffff
mov edi, str.brightness
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e102d
add esp, 4
fstp dword [0x4ec450]
or ecx, 0xffffffff
xor eax, eax
mov edi, str.contrast
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.contrast
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x40419e
or ecx, 0xffffffff
mov edi, str.contrast
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e102d
add esp, 4
fstp dword [0x4ec454]
or ecx, 0xffffffff
xor eax, eax
mov edi, str.umul
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.umul
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4041e6
or ecx, 0xffffffff
mov edi, str.umul
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e102d
add esp, 4
fstp dword [0x4ec448]
or ecx, 0xffffffff
xor eax, eax
mov edi, str.vmul
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.vmul
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x40422e
or ecx, 0xffffffff
mov edi, str.vmul
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e102d
add esp, 4
fstp dword [0x4ec44c]
or ecx, 0xffffffff
xor eax, eax
mov edi, str.crap_tv
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.crap_tv
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404275
or ecx, 0xffffffff
mov edi, str.crap_tv
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x508570], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.render_method
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.render_method
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4042bc
or ecx, 0xffffffff
mov edi, str.render_method
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x500414], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.no_sound
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.no_sound
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404303
or ecx, 0xffffffff
mov edi, str.no_sound
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b580], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.snd_rate
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.snd_rate
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x40434a
or ecx, 0xffffffff
mov edi, str.snd_rate
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec464], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.snd_segs
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.snd_segs
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404391
or ecx, 0xffffffff
mov edi, str.snd_segs
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec468], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.snd_distort
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.snd_distort
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4043d9
or ecx, 0xffffffff
mov edi, str.snd_distort
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e102d
add esp, 4
fstp dword [0x4ec470]
or ecx, 0xffffffff
xor eax, eax
mov edi, str.stereo16
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.stereo16
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404420
or ecx, 0xffffffff
mov edi, str.stereo16
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec46c], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.gym_log_dac
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.gym_log_dac
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404467
or ecx, 0xffffffff
mov edi, str.gym_log_dac
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ed408], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.pad_code_
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.pad_code_
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4044df
push 0xa
lea ecx, [esp + 0x14]
push ecx
or ecx, 0xffffffff
mov edi, str.pad_code_
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e0e0e
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x4044df
cmp byte [eax], 0x5d
jne 0x4044df
cmp byte [eax + 1], 0x20
jne 0x4044df
push 0
add eax, 2
push 0
push eax
call fcn.004e0e0e
add esp, 0xc
and esi, 0x1f
mov dword [esi*4 + 0x4ec480], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.rom_path
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.rom_path
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404544
or ecx, 0xffffffff
mov edi, str.rom_path
repne scasb al, byte es:[edi]
not ecx
mov al, byte [ecx + 0x50c89f]
dec ecx
test al, al
je 0x404544
or ecx, 0xffffffff
xor eax, eax
mov edi, str.rom_path
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x7ff
add ecx, 0x50c8a1
push ecx
push 0x508578
call fcn.004e0d10
add esp, 0xc
or ecx, 0xffffffff
xor eax, eax
mov edi, str.state_path
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.state_path
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4045a9
or ecx, 0xffffffff
mov edi, str.state_path
repne scasb al, byte es:[edi]
not ecx
mov al, byte [ecx + 0x50c89f]
dec ecx
test al, al
je 0x4045a9
or ecx, 0xffffffff
xor eax, eax
mov edi, str.state_path
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x7ff
add ecx, 0x50c8a1
push ecx
push 0x508d78
call fcn.004e0d10
add esp, 0xc
or ecx, 0xffffffff
xor eax, eax
mov edi, str.virtual_fps
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.virtual_fps
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4045f0
or ecx, 0xffffffff
mov edi, str.virtual_fps
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec458], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.split_screen
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.split_screen
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404637
or ecx, 0xffffffff
mov edi, str.split_screen
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x51d3e4], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.country_ver
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.country_ver
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404680
or ecx, 0xffffffff
mov edi, str.country_ver
repne scasb al, byte es:[edi]
not ecx
push eax
dec ecx
push eax
add ecx, 0x50c8a0
push ecx
call fcn.004e0e0e
add esp, 0xc
mov dword [0x5002fc], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.cpu_emu
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.cpu_emu
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x4046cd
or ecx, 0xffffffff
mov edi, str.cpu_emu
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
push eax
mov ecx, 0x4ffc48
call fcn.00406d50
or ecx, 0xffffffff
xor eax, eax
mov edi, str.auto_saveload
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.auto_saveload
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x404714
or ecx, 0xffffffff
mov edi, str.auto_saveload
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x50b57c], eax
or ecx, 0xffffffff
xor eax, eax
mov edi, str.sram_saveload
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.sram_saveload
push 0x50c8a0
call fcn.004e1110
add esp, 0xc
test eax, eax
jne 0x403ee2
or ecx, 0xffffffff
mov edi, str.sram_saveload
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x50c8a0
push ecx
call fcn.004e1105
add esp, 4
mov dword [0x4ec040], eax
jmp 0x403ee2
push ebp
call fcn.004e0a7a
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebp
ret