Function at 0x4b5660
Capabilities:
Get geographical location

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4f2d74
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14c]
push edi
mov edi, dword [esp + 0x154]
push edi
push esi
call dword [sym.imp.USER32.dll_GetSubMenu]
mov ebp, eax
xor ebx, ebx
cmp ebp, ebx
je 0x4b5b36
push 0x403
push edi
push esi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov dword [esp + 0x24], ebx
mov eax, dword [0x53a380]
mov ecx, 0x53a380
mov dword [esp + 0x148], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ecx
call dword [eax + 4]
mov eax, dword [0x53404c]
mov byte [esp + 0x148], 1
cmp eax, ebx
jne 0x4b573d
cmp dword [0x534048], ebx
jne 0x4b573d
push 0x110
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0x148], 2
je 0x4b570e
push ebx
mov ecx, eax
call fcn.00404ab0
jmp 0x4b5710
xor eax, eax
mov ecx, dword [0x525b68]
mov byte [esp + 0x148], 1
push ecx
push 0x404a80
mov ecx, 0x538d90
mov dword [0x534048], eax
call fcn.00402180
mov dword [0x53404c], 1
mov edx, dword [0x53a380]
mov esi, dword [0x534048]
mov ecx, 0x53a380
mov byte [esp + 0x148], bl
call dword [edx + 8]
lea eax, [esp + 0x24]
mov ecx, esi
push eax
call fcn.0043f2a0
test eax, eax
jl 0x4b5867
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x4b5867
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
cmp eax, ebx
mov dword [esp + 0x1c], eax
jle 0x4b5867
mov edx, dword [esp + 0x150]
push 0x400
push edi
push edx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0x400
push ebx
push ebp
call edi
test eax, eax
je 0x4b57be
push 0x400
push ebx
push ebp
call edi
test eax, eax
jne 0x4b57b1
mov eax, dword [esp + 0x1c]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x18], ebx
jle 0x4b5847
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_3
lea edi, [esi + 0xc80]
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 3
lea eax, [edi - 0xc7f]
push eax
push 0x531548
push ecx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebx
mov edx, dword [eax]
push ecx
push esi
push eax
call dword [edx + 0x10]
cmp dword [esp + 0x14], ebx
jne 0x4b581a
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x10]
push edx
push edi
push ebx
push ebp
call dword [sym.imp.USER32.dll_AppendMenuA]
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
jl 0x4b57cc
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
mov eax, dword [esp + 0x18]
push ebx
add eax, 0xc80
add esi, 0xc7f
push eax
push esi
push 0xc80
push ebp
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
jmp 0x4b586d
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov edx, dword [0x53a380]
mov ecx, 0x53a380
mov byte [esp + 0x148], 6
mov dword [esp + 0x34], ecx
call dword [edx + 4]
mov eax, dword [0x53404c]
mov byte [esp + 0x148], 7
cmp eax, ebx
jne 0x4b5901
cmp dword [0x534048], ebx
jne 0x4b5901
push 0x110
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0x148], 8
je 0x4b58d3
push ebx
mov ecx, eax
call fcn.00404ab0
jmp 0x4b58d5
xor eax, eax
mov dword [0x534048], eax
mov eax, dword [0x525b68]
push eax
push 0x404a80
mov ecx, 0x538d90
mov byte [esp + 0x150], 7
call fcn.00402180
mov dword [0x53404c], 1
mov edx, dword [0x53a380]
mov esi, dword [0x534048]
mov ecx, 0x53a380
mov byte [esp + 0x148], 6
call dword [edx + 8]
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
call fcn.0043f170
test eax, eax
jl 0x4b5adc
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x4b5adc
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 0x52aa28
push eax
call dword [ecx + 0xc]
test eax, eax
jl 0x4b5adc
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x4b5adc
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push 0x530bd0
push eax
call dword [ecx]
test eax, eax
jl 0x4b5adc
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x4b5adc
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ebx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
cmp dword [esp + 0x10], ebx
jle 0x4b5adc
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jg 0x4b59dc
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
push 0x400
push eax
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x400
push ebx
push ebp
call edi
test eax, eax
je 0x4b59f3
push 0x400
push ebx
push ebp
call edi
test eax, eax
jne 0x4b59cd
jmp 0x4b59f3
add eax, 0xc80
push 0x533fe0
push eax
push 0x800
push ebp
call dword [sym.imp.USER32.dll_AppendMenuA]
mov eax, dword [esp + 0x10]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x20], ebx
jle 0x4b5ab6
mov edx, dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
add edx, 0xc81
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov ecx, dword [eax]
push edx
push esi
push eax
call dword [ecx + 0x10]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x3c]
push 0x104
push eax
push 2
push ecx
mov byte [esp + 0x4c], bl
call edi
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x18]
push edx
call sub.MFC42.DLL_CString::CString_2
push 0x53153c
push 0x531534
lea ecx, [esp + 0x20]
mov byte [esp + 0x150], 9
call sub.MFC42.DLL_CString::Replace
cmp dword [esp + 0x38], 1
jne 0x4b5a7d
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
push ebx
push ebp
call dword [sym.imp.USER32.dll_AppendMenuA]
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 6
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc esi
inc ecx
cmp esi, eax
mov dword [esp + 0x14], ecx
jl 0x4b5a19
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ebx
lea ecx, [edx + eax + 0xc81]
lea edx, [esi + eax + 0xc80]
push ecx
add eax, 0xc81
push edx
push eax
push ebp
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x148], 5
cmp eax, ebx
je 0x4b5af2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x30]
mov byte [esp + 0x148], 4
cmp eax, ebx
je 0x4b5b08
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x148], bl
cmp eax, ebx
je 0x4b5b1d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x148], 0xffffffff
cmp eax, ebx
je 0x4b5b36
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret