Function at 0x4867a0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ca946
mov eax, dword fs:[0]
push eax
sub esp, 0x78
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 esi, ecx
mov eax, dword [esi + 0x980]
sub eax, dword [esi + 0x97c]
test eax, 0xfffffffc
je 0x4870c4
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00484ab0
lea ecx, [ebp - 0x84]
call fcn.00498220
push 0x38
mov byte [ebp - 4], 1
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x486840
push 0x4cd308
push 0x4cd308
push 0x4d2c34
mov ecx, eax
call fcn.00497fa0
jmp 0x486842
xor eax, eax
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 1
call fcn.004994b0
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x486877
push str.meta
mov ecx, eax
call fcn.00498300
mov edi, eax
jmp 0x486879
xor edi, edi
push dword [esi + 0x964]
mov ecx, edi
mov byte [ebp - 4], 1
push str.active
call fcn.0049a250
push edi
lea ecx, [ebp - 0x84]
call fcn.004994b0
mov eax, dword [esi + 0x980]
xor edi, edi
sub eax, dword [esi + 0x97c]
sar eax, 2
test eax, eax
je 0x487070
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x4868d9
push str.profile
mov ecx, eax
call fcn.00498300
mov ebx, eax
jmp 0x4868db
xor ebx, ebx
mov eax, dword [esi + 0x97c]
mov byte [ebp - 4], 1
mov eax, dword [eax + edi*4]
add eax, 0x7a0
cmp dword [eax + 0x14], 0x10
jb 0x4868f5
mov eax, dword [eax]
push eax
push str.name
mov ecx, ebx
call fcn.0049a100
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x26c]
push str.level
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0xc], 0
je 0x48693a
push 1
push str.Completed
mov ecx, ebx
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x10]
push str.CoinsCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x80c]
push str.TotalCoinsCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x764]
push str.Status
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x270]
push str.TotalBonusUsed
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x768]
push str.CityPosition
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a0]
push str.AddedTime
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a4]
push str.AddedMoves
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x758]
push str.OopsHintCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
xor ecx, ecx
mov eax, dword [eax + edi*4]
cmp dword [eax], ecx
setne cl
push ecx
push str.TimedMode
mov ecx, ebx
call fcn.0049a250
mov eax, dword [esi + 0x97c]
xor ecx, ecx
mov eax, dword [eax + edi*4]
cmp dword [eax + 8], ecx
setne cl
push ecx
push str.MovesLimitMode
mov ecx, ebx
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x280]
push str.InitStatus
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x75c]
push str.OutroStatus
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
push dword [eax + 0x27c]
push str.HogCompleted
mov ecx, ebx
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x274]
push str.SolitaireCompleted
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x798]
push str.BarrelLevelCompleted
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x794]
push str.GreatTimingCounter
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x284]
push str.ComboCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x298]
push str.SkipSolitairesCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x29c]
push str.SkipMahjongCount
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x79c]
push str.WasChallengeMode
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x7e0]
push str.LastBuilding
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x810]
push str.Season
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x814]
push str.Clouds
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x818]
push str.Rain
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x820]
push str.Rainbow
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x82c]
push str.CurrentDate
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x824]
push 0x4d1f34
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x828]
push str.Illumination
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x81c]
push str.Snow
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 4]
push str.EnabledHints
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x278]
push str.MahjongCompleted
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x830]
push str.SnowInM3
call fcn.0049a250
mov eax, dword [esi + 0x97c]
sub esp, 8
mov ecx, ebx
mov eax, dword [eax + edi*4]
movsd xmm0, qword [eax + 0x288]
movsd qword [esp], xmm0
push str.TotalTime
call fcn.0049a2a0
mov eax, dword [esi + 0x97c]
sub esp, 8
mov ecx, ebx
mov eax, dword [eax + edi*4]
movsd xmm0, qword [eax + 0x290]
movsd qword [esp], xmm0
push str.TimeInLevel
call fcn.0049a2a0
xor edx, edx
mov ecx, 0xdc
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x486d66
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x486d22
push str.buildings
mov ecx, eax
call fcn.00498300
jmp 0x486d24
xor eax, eax
push dword [ebp - 0x30]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4ce704
mov byte [ebp - 4], 1
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + edi*4]
push dword [eax + ecx]
mov ecx, dword [ebp - 0x34]
push str.value
call fcn.0049a250
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
add ecx, 4
inc edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x26c
jl 0x486cf0
xor edx, edx
mov ecx, 0x14
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x486e06
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x486dc2
push str.achievement
mov ecx, eax
call fcn.00498300
jmp 0x486dc4
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x2c], eax
push 0x4ce704
mov byte [ebp - 4], 1
call fcn.0049a250
mov eax, dword [esi + 0x97c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax + edi*4]
push dword [eax + ecx]
mov ecx, dword [ebp - 0x2c]
push str.value
call fcn.0049a250
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
add ecx, 4
inc edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], ecx
cmp ecx, 0xdc
jl 0x486d90
mov ecx, 0x500
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x2c], ecx
jmp 0x486e30
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
mov edx, dword [ecx + eax - 0x258]
test edx, edx
mov eax, dword [ecx + eax]
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
jne 0x486e54
test eax, eax
je 0x486ebf
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x486e77
push str.level
mov ecx, eax
call fcn.00498300
jmp 0x486e79
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x30], eax
push 0x4ce6cc
mov byte [ebp - 4], 1
call fcn.0049a250
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
push str.moves
call fcn.0049a250
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push str.time
call fcn.0049a250
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
add ecx, 4
inc edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x68c
jle 0x486e30
xor edx, edx
mov ecx, 0x76c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x486f3c
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x486f14
push str.hintstatus
mov ecx, eax
call fcn.00498300
jmp 0x486f16
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4ce6cc
mov byte [ebp - 4], 1
call fcn.0049a250
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
add ecx, 4
inc edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x794
jl 0x486ee2
xor edx, edx
mov ecx, 0x7b8
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
jmp 0x486f60
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x486fba
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x486f92
push str.GhostStatus
mov ecx, eax
call fcn.00498300
jmp 0x486f94
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4ce6cc
mov byte [ebp - 4], 1
call fcn.0049a250
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
add ecx, 4
inc edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x7e0
jl 0x486f60
xor edx, edx
mov ecx, 0x7e4
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 0x97c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x48703a
push 0x50
call fcn.004ade16
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x487012
push str.RandomCoinStatus
mov ecx, eax
call fcn.00498300
jmp 0x487014
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4ce6cc
mov byte [ebp - 4], 1
call fcn.0049a250
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004994b0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
add ecx, 4
inc edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x80c
jl 0x486fe0
push ebx
lea ecx, [ebp - 0x84]
call fcn.004994b0
mov eax, dword [esi + 0x980]
inc edi
sub eax, dword [esi + 0x97c]
sar eax, 2
cmp edi, eax
jb 0x4868b4
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x84]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.0049a080
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
mov dword [ebp - 0x84], vtable.TiXmlDocument.0
cmp eax, 0x500af4
je 0x4870a8
push eax
call fcn.004ade67
add esp, 4
lea ecx, [ebp - 0x84]
call fcn.00498790
cmp dword [ebp - 0x14], 8
jb 0x4870c4
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