Function at 0x485890
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ca89e
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x4faa80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x34], ebx
call fcn.004854c0
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
mov ecx, ebx
lea eax, [ebp - 0x28]
push eax
call fcn.00484ab0
lea ecx, [ebp - 0xb8]
call fcn.00498220
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 0
cmovae eax, dword [ebp - 0x28]
lea ecx, [ebp - 0xb8]
push eax
mov byte [ebp - 4], 1
call fcn.00499860
test al, al
je 0x486141
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x68]
lea eax, [ebp - 0x70]
push eax
call fcn.004993c0
mov esi, eax
mov ecx, dword [esi]
test ecx, ecx
je 0x486108
mov edx, dword [ecx]
call dword [edx + 0x14]
test eax, eax
je 0x486108
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edi, eax
mov dword [ebp - 0x3c], edi
test edi, edi
je 0x486108
lea esp, [esp]
mov ecx, dword [edi + 0x20]
mov edx, str.meta
add ecx, 8
mov eax, ecx
lea ecx, [ecx]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x485990
test bl, bl
je 0x48598c
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x485990
add eax, 2
add edx, 2
test bl, bl
jne 0x485970
xor eax, eax
jmp 0x485995
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4859c2
lea eax, [ebp - 0x5c]
mov ecx, edi
push eax
push str.active
call fcn.0049a040
test eax, eax
jne 0x486141
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0x964], eax
jmp 0x4860f4
mov eax, str.profile
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4859e7
test dl, dl
je 0x4859e3
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4859e7
add ecx, 2
add eax, 2
test dl, dl
jne 0x4859c7
xor eax, eax
jmp 0x4859ec
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4860f1
push str.name
mov ecx, edi
call fcn.00498b30
mov esi, eax
test esi, esi
je 0x4860f1
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0
push eax
push str.TimedMode
mov ecx, edi
call fcn.0049a040
push 0x838
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x54], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x485a4b
push dword [ebp - 0x4c]
mov ecx, eax
push esi
call fcn.004843c0
mov ebx, eax
mov dword [ebp - 0x2c], eax
jmp 0x485a50
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
cmp dword [ebx + 0x7b4], 0x10
lea eax, [ebx + 0x7a0]
mov byte [ebp - 4], 1
mov dword [ebp - 0x54], ebx
jb 0x485a68
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
push eax
call fcn.00484a20
test al, al
jne 0x48619d
lea eax, [ebx + 8]
mov ecx, edi
mov dword [eax], 0
push eax
push str.MovesLimitMode
call fcn.0049a040
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
push str.level
call fcn.0049a040
test eax, eax
jne 0x485aac
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x26c], eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push eax
push str.Completed
mov ecx, edi
call fcn.0049a040
mov eax, dword [ebp - 0x44]
mov ecx, edi
mov dword [ebx + 0xc], eax
lea eax, [ebx + 0x298]
push eax
push str.SkipSolitairesCount
mov dword [eax], 0
call fcn.0049a040
lea eax, [ebx + 0x29c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.SkipMahjongCount
call fcn.0049a040
lea eax, [ebx + 0x280]
mov ecx, edi
mov dword [eax], 1
push eax
push str.InitStatus
call fcn.0049a040
lea eax, [ebx + 0x764]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Status
call fcn.0049a040
lea eax, [ebx + 0x830]
mov ecx, edi
mov dword [eax], 1
push eax
push str.SnowInM3
call fcn.0049a040
lea eax, [ebx + 0x278]
mov ecx, edi
mov dword [eax], 0
push eax
push str.MahjongCompleted
call fcn.0049a040
lea eax, [ebx + 0x810]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Season
call fcn.0049a040
lea eax, [ebx + 0x814]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Clouds
call fcn.0049a040
lea eax, [ebx + 4]
mov ecx, edi
mov dword [eax], 1
push eax
push str.EnabledHints
call fcn.0049a040
lea eax, [ebx + 0x818]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Rain
call fcn.0049a040
lea eax, [ebx + 0x820]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Rainbow
call fcn.0049a040
lea eax, [ebx + 0x824]
mov ecx, edi
mov dword [eax], 0
push eax
push 0x4d1f34
call fcn.0049a040
lea eax, [ebx + 0x82c]
push eax
push str.CurrentDate
mov ecx, edi
mov dword [eax], 1
call fcn.0049a040
lea eax, [ebx + 0x828]
mov ecx, edi
mov dword [eax], 1
push eax
push str.Illumination
call fcn.0049a040
lea eax, [ebx + 0x81c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Snow
call fcn.0049a040
lea eax, [ebx + 0x80c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.TotalCoinsCount
call fcn.0049a040
lea eax, [ebx + 0x7e0]
mov ecx, edi
mov dword [eax], 0
push eax
push str.LastBuilding
call fcn.0049a040
lea eax, [ebx + 0x79c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.WasChallengeMode
call fcn.0049a040
lea eax, [ebx + 0x758]
mov ecx, edi
mov dword [eax], 0
push eax
push str.OopsHintCount
call fcn.0049a040
lea eax, [ebx + 0x27c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.HogCompleted
call fcn.0049a040
lea eax, [ebx + 0x274]
mov ecx, edi
mov dword [eax], 0
push eax
push str.SolitaireCompleted
call fcn.0049a040
lea eax, [ebx + 0x10]
mov ecx, edi
mov dword [eax], 0x1e
push eax
push str.CoinsCount
call fcn.0049a040
lea eax, [ebx + 0x2a0]
mov ecx, edi
mov dword [eax], 0
push eax
push str.AddedTime
call fcn.0049a040
lea eax, [ebx + 0x2a4]
mov ecx, edi
mov dword [eax], 0
push eax
push str.AddedMoves
call fcn.0049a040
lea eax, [ebx + 0x75c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.OutroStatus
call fcn.0049a040
lea eax, [ebx + 0x288]
xorps xmm0, xmm0
movsd qword [eax], xmm0
push eax
push str.TotalTime
mov ecx, edi
call fcn.0049a000
lea eax, [ebx + 0x290]
xorps xmm0, xmm0
push eax
push str.TimeInLevel
mov ecx, edi
movsd qword [eax], xmm0
call fcn.0049a000
lea eax, [ebx + 0x270]
mov ecx, edi
mov dword [eax], 0
push eax
push str.TotalBonusUsed
call fcn.0049a040
lea eax, [ebx + 0x768]
mov ecx, edi
mov dword [eax], 0x400
push eax
push str.CityPosition
call fcn.0049a040
lea eax, [ebx + 0x794]
mov ecx, edi
mov dword [eax], 0
push eax
push str.GreatTimingCounter
call fcn.0049a040
lea eax, [ebx + 0x798]
mov ecx, edi
mov dword [eax], 0
push eax
push str.BarrelLevelCompleted
call fcn.0049a040
lea eax, [ebx + 0x284]
mov ecx, edi
mov dword [eax], 0
push eax
push str.ComboCount
call fcn.0049a040
mov ecx, edi
call fcn.00499450
mov edi, eax
test edi, edi
je 0x4860da
jmp 0x485e00
mov ecx, dword [edi + 0x20]
mov esi, str.buildings
add ecx, 8
mov edx, ecx
lea ecx, [ecx]
mov al, byte [edx]
cmp al, byte [esi]
jne 0x485e30
test al, al
je 0x485e2c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x485e30
add edx, 2
add esi, 2
test al, al
jne 0x485e10
xor eax, eax
jmp 0x485e35
sbb eax, eax
or eax, 1
test eax, eax
jne 0x485e80
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
push 0x4ce704
call fcn.0049a040
test eax, eax
jne 0x4860c9
cmp dword [ebp - 0x50], 0x63
ja 0x4860c9
mov dword [ebp - 0x30], eax
mov ecx, edi
lea eax, [ebp - 0x30]
push eax
push str.value
call fcn.0049a040
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
mov dword [ebx + ecx*4 + 0xdc], eax
jmp 0x4860c9
mov edx, str.achievement
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x485ea7
test bl, bl
je 0x485ea3
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x485ea7
add eax, 2
add edx, 2
test bl, bl
jne 0x485e87
xor eax, eax
jmp 0x485eac
sbb eax, eax
or eax, 1
test eax, eax
jne 0x485f01
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
push 0x4ce704
call fcn.0049a040
test eax, eax
jne 0x4860c6
cmp dword [ebp - 0x48], 0x31
ja 0x4860c6
mov dword [ebp - 0x30], eax
mov ecx, edi
lea eax, [ebp - 0x30]
push eax
push str.value
call fcn.0049a040
mov ecx, dword [ebp - 0x30]
mov eax, 2
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
cmovne ecx, eax
mov eax, dword [ebp - 0x48]
mov dword [ebx + eax*4 + 0x14], ecx
jmp 0x4860c9
mov edx, str.level
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x485f28
test bl, bl
je 0x485f24
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x485f28
add eax, 2
add edx, 2
test bl, bl
jne 0x485f08
xor eax, eax
jmp 0x485f2d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x485fa6
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push 0x4ce6cc
call fcn.0049a040
test eax, eax
jne 0x4860c6
mov eax, dword [ebp - 0x38]
dec eax
cmp eax, 0x63
ja 0x4860c6
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0
push eax
push str.moves
mov ecx, edi
call fcn.0049a040
mov ecx, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [ebx + ecx*4 + 0x2a4], eax
lea eax, [ebp - 0x40]
push eax
push str.time
mov ecx, edi
mov dword [ebp - 0x40], 0
call fcn.0049a040
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov dword [ebx + ecx*4 + 0x4fc], eax
jmp 0x4860c9
mov edx, str.hintstatus
mov eax, ecx
lea ecx, [ecx]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x485fd0
test bl, bl
je 0x485fcc
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x485fd0
add eax, 2
add edx, 2
test bl, bl
jne 0x485fb0
xor eax, eax
jmp 0x485fd5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x486010
lea eax, [ebp - 0x60]
mov ecx, edi
push eax
push 0x4ce6cc
call fcn.0049a040
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x4860c9
mov eax, dword [ebp - 0x60]
cmp eax, 9
ja 0x4860c9
mov dword [ebx + eax*4 + 0x76c], 1
jmp 0x4860c9
mov edx, str.GhostStatus
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x486037
test bl, bl
je 0x486033
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x486037
add eax, 2
add edx, 2
test bl, bl
jne 0x486017
xor eax, eax
jmp 0x48603c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x48606c
lea eax, [ebp - 0x64]
mov ecx, edi
push eax
push 0x4ce6cc
call fcn.0049a040
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x4860c9
mov eax, dword [ebp - 0x64]
cmp eax, 9
ja 0x4860c9
mov dword [ebx + eax*4 + 0x7b8], 1
jmp 0x4860c9
mov eax, str.RandomCoinStatus
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x486091
test dl, dl
je 0x48608d
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x486091
add ecx, 2
add eax, 2
test dl, dl
jne 0x486071
xor eax, eax
jmp 0x486096
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4860c6
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
push 0x4ce6cc
call fcn.0049a040
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x4860c9
mov eax, dword [ebp - 0x6c]
cmp eax, 9
ja 0x4860c9
mov dword [ebx + eax*4 + 0x7e4], 1
jmp 0x4860c9
mov ebx, dword [ebp - 0x2c]
mov ecx, edi
call fcn.00499920
mov edi, eax
test edi, edi
jne 0x485e00
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebx + 0x97c]
call fcn.0048c350
mov edi, dword [ebp - 0x3c]
jmp 0x4860f4
mov ebx, dword [ebp - 0x34]
mov ecx, edi
call fcn.00499920
mov edi, eax
mov dword [ebp - 0x3c], eax
test edi, edi
jne 0x485960
mov ecx, dword [ebx + 0x964]
test ecx, ecx
js 0x486125
mov eax, dword [ebx + 0x980]
sub eax, dword [ebx + 0x97c]
sar eax, 2
cmp ecx, eax
jl 0x486141
mov eax, dword [ebx + 0x980]
sub eax, dword [ebx + 0x97c]
and eax, 0xfffffffc
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [ebx + 0x964], eax
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x500af4
je 0x486165
push eax
call fcn.004ade67
add esp, 4
lea ecx, [ebp - 0xb8]
call fcn.00498790
cmp dword [ebp - 0x14], 8
jb 0x486181
push dword [ebp - 0x28]
call fcn.004ade67
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ae734
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x486141
cmp dword [ebx + 0x7b4], 0x10
jb 0x4861b8
push dword [ebx + 0x7a0]
call fcn.004ade67
add esp, 4
mov dword [ebx + 0x7b4], 0xf
mov dword [ebx + 0x7b0], 0
push ebx
mov byte [ebx + 0x7a0], 0
call fcn.004ade67
add esp, 4
jmp 0x486141