Function at 0x68ef7db8
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x68f596fb
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x68f6edd8]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push esi
push edi
mov eax, dword [0x68f6edd8]
xor eax, esp
push eax
lea eax, [esp + 0x268]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x24]
push eax
mov ebx, ecx
call fcn.68ef6662
and dword [esp + 0x270], 0
push 5
lea eax, [esp + 0x24c]
push eax
xor eax, eax
cmp dword [ebx + 4], 1
sete al
lea eax, [eax*8 + 0xf]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x68ef7e4e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2e6e7766
call fcn.68ef1014
lea eax, [esp + 0x248]
push eax
call fcn.68ef25a7
mov edi, eax
jmp 0x68ef7ed2
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 1
mov eax, dword [esp + 0x24]
add esi, edi
lea eax, [eax + esi*2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
mov eax, dword [esp + 0x134]
cmp eax, dword [esp + 0x24]
je 0x68ef7ebe
lea esi, [esp + 0x134]
call fcn.68ef5daa
push eax
push dword [esp + 0x138]
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24c]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
jne 0x68ef7e5f
push 5
lea eax, [esp + 0x24c]
push eax
xor eax, eax
cmp dword [ebx + 4], 1
sete al
lea eax, [eax*8 + 0xe]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x68ef7f28
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2e6e7767
call fcn.68ef1014
lea eax, [esp + 0x248]
push eax
call fcn.68ef25a7
mov edi, eax
cmp edi, 1
jne 0x68ef7fd5
cmp word [esp + 0x248], 0x2e
je 0x68ef7ff3
jmp 0x68ef7fd5
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 2
push 0x2e
lea ecx, [esp + 0x138]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Append_wchar_t_
mov eax, dword [esp + 0x24]
add esi, edi
lea eax, [eax + esi*2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
mov eax, dword [esp + 0x134]
cmp eax, dword [esp + 0x24]
je 0x68ef7fc1
lea esi, [esp + 0x134]
call fcn.68ef5daa
push eax
push dword [esp + 0x138]
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24c]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
jne 0x68ef7f54
mov eax, dword [ebx + 4]
test eax, eax
je 0x68ef80e3
cmp eax, 2
jne 0x68ef8018
and word [esp + 0x24a], 0
mov word [esp + 0x248], 0x25
jmp 0x68ef8041
push 5
lea eax, [esp + 0x24c]
push eax
push 0x14
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x68ef8041
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2e6e7768
call fcn.68ef1014
lea eax, [esp + 0x248]
push eax
call fcn.68ef25a7
mov edi, eax
jmp 0x68ef80c5
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 3
mov eax, dword [esp + 0x24]
add esi, edi
lea eax, [eax + esi*2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
mov eax, dword [esp + 0x134]
cmp eax, dword [esp + 0x24]
je 0x68ef80b1
lea esi, [esp + 0x134]
call fcn.68ef5daa
push eax
push dword [esp + 0x138]
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24c]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
jne 0x68ef8052
or dword [esp + 0x18], 0xffffffff
push 2
lea eax, [esp + 0x1c]
push eax
mov eax, dword [ebx + 4]
dec eax
neg eax
sbb eax, eax
and eax, 0xff4
add eax, 0x1c
or eax, 0x20000000
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x68ef8122
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2e6e7769
call fcn.68ef1014
mov eax, dword [esp + 0x18]
test eax, eax
mov edi, 0x68f70f90
je 0x68ef8148
cmp eax, 4
jne 0x68ef813a
cmp dword [ebx + 4], 1
je 0x68ef8148
cmp eax, 0xe
je 0x68ef8148
cmp eax, 0xf
jne 0x68ef828a
and word [esp + 0x24a], 0
mov word [esp + 0x248], 0x28
jmp 0x68ef81cd
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 4
mov eax, dword [esp + 0x24]
lea eax, [eax + esi*2 + 2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
cmp dword [esp + 0x24], edi
je 0x68ef81a8
push edi
call fcn.68ef25a7
push eax
push edi
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
push dword [esp + 0x134]
lea eax, [esp + 0x28]
push eax
call fcn.68ef5dff
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24c]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
jne 0x68ef815d
mov word [esp + 0x248], 0x28
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24c]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
je 0x68ef8286
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 5
mov eax, dword [esp + 0x24]
lea eax, [eax + esi*2 + 2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
mov eax, dword [esp + 0x134]
cmp eax, dword [esp + 0x24]
je 0x68ef826d
lea esi, [esp + 0x134]
call fcn.68ef5daa
push eax
push dword [esp + 0x138]
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
jmp 0x68ef81f5
mov eax, dword [esp + 0x18]
cmp eax, 3
je 0x68ef82b7
cmp eax, 4
jne 0x68ef829a
cmp dword [ebx + 4], 1
jne 0x68ef82b7
cmp eax, 6
je 0x68ef82b7
cmp eax, 7
je 0x68ef82b7
cmp eax, 0xa
je 0x68ef82b7
cmp eax, 0xb
je 0x68ef82b7
cmp eax, 0xd
jne 0x68ef8386
push 5
lea eax, [esp + 0x258]
push eax
push 0x51
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x68ef82e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2e6e7768
call fcn.68ef1014
lea eax, [esp + 0x254]
push eax
call fcn.68ef25a7
mov dword [esp + 0x20], eax
jmp 0x68ef8368
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x13c]
push eax
call fcn.68ef3adf
mov byte [esp + 0x270], 6
mov eax, dword [esp + 0x20]
add esi, eax
mov eax, dword [esp + 0x24]
lea eax, [eax + esi*2]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.68ef5dff
cmp dword [esp + 0x24], edi
je 0x68ef8343
push edi
call fcn.68ef25a7
push eax
push edi
lea ecx, [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStackStrBase::Set_wchar_t_const__const__unsigned_long_int_
push dword [esp + 0x134]
lea eax, [esp + 0x28]
push eax
call fcn.68ef5dff
mov byte [esp + 0x270], 0
lea ecx, [esp + 0x134]
call fcn.68ef3ef5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x258]
push eax
push dword [esp + 0x2c]
call sym.GrooveUtil.DLL_public:_static_bool___stdcall_raw_GCStr::Find_wchar_t_const___wchar_t_const___unsigned_long_int__
test al, al
jne 0x68ef82f3
push dword [esp + 0x24]
call dword [sym.imp.MSVCR80.dll__wtof]
mov eax, dword [esp + 0x20]
fst qword [eax]
cmp dword [ebx + 4], 2
pop ecx
jne 0x68ef83a7
fdiv qword [0x68f79690]
fstp qword [eax]
jmp 0x68ef83a9
fstp st(0)
or dword [esp + 0x270], 0xffffffff
lea ecx, [esp + 0x24]
call fcn.68ef3ef5
mov al, 1
mov ecx, dword [esp + 0x268]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.68f53fd7
mov esp, ebp
pop ebp
ret 8