Function at 0x490840
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4de386
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x511d60]
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 + 0xcb0]
sub eax, dword [esi + 0xcac]
test eax, 0xfffffffc
je 0x4911b4
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.0048e810
lea ecx, [ebp - 0x84]
call fcn.004a3610
push 0x38
mov byte [ebp - 4], 1
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x4908e0
push 0x4e16d8
push 0x4e16d8
push 0x4e7a84
mov ecx, eax
call fcn.004a3390
jmp 0x4908e2
xor eax, eax
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 1
call fcn.004a48a0
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x490917
push str.meta
mov ecx, eax
call fcn.004a36f0
mov edi, eax
jmp 0x490919
xor edi, edi
push dword [esi + 0xc94]
mov ecx, edi
mov byte [ebp - 4], 1
push str.active
call fcn.004a5640
push edi
lea ecx, [ebp - 0x84]
call fcn.004a48a0
mov eax, dword [esi + 0xcb0]
xor edi, edi
sub eax, dword [esi + 0xcac]
sar eax, 2
test eax, eax
je 0x491160
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x490979
push str.profile
mov ecx, eax
call fcn.004a36f0
mov ebx, eax
jmp 0x49097b
xor ebx, ebx
mov eax, dword [esi + 0xcac]
mov byte [ebp - 4], 1
mov eax, dword [eax + edi*4]
add eax, 0x7a0
cmp dword [eax + 0x14], 0x10
jb 0x490995
mov eax, dword [eax]
push eax
push str.name
mov ecx, ebx
call fcn.004a54f0
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x26c]
push str.level
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0xc], 0
je 0x4909da
push 1
push str.Completed
mov ecx, ebx
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x10]
push str.CoinsCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x80c]
push str.TotalCoinsCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x764]
push str.Status
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x270]
push str.TotalBonusUsed
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x768]
push str.CityPosition
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a0]
push str.AddedTime
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a4]
push str.AddedMoves
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x758]
push str.OopsHintCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
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.004a5640
mov eax, dword [esi + 0xcac]
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.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x280]
push str.InitStatus
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x75c]
push str.OutroStatus
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
push dword [eax + 0x27c]
push str.HogCompleted
mov ecx, ebx
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x274]
push str.SolitaireCompleted
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x798]
push str.BarrelLevelCompleted
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x794]
push str.GreatTimingCounter
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x284]
push str.ComboCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x298]
push str.SkipSolitairesCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x29c]
push str.SkipMahjongCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x79c]
push str.WasChallengeMode
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x7e0]
push str.LastBuilding
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x810]
push str.Season
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x814]
push str.Clouds
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x818]
push str.Rain
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x820]
push str.Rainbow
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x82c]
push str.CurrentDate
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x824]
push 0x4e67f8
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x828]
push str.Illumination
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x81c]
push str.Snow
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 4]
push str.EnabledHints
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x278]
push str.MahjongCompleted
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x830]
push str.SnowInM3
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x834]
push str.KapljaHintCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x838]
push str.KeyHintCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x83c]
push str.HalfHintCount
call fcn.004a5640
mov eax, dword [esi + 0xcac]
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.004a5690
mov eax, dword [esi + 0xcac]
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.004a5690
xor edx, edx
mov ecx, 0xdc
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x490e57
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x490e13
push str.buildings
mov ecx, eax
call fcn.004a36f0
jmp 0x490e15
xor eax, eax
push dword [ebp - 0x30]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4e2b14
mov byte [ebp - 4], 1
call fcn.004a5640
mov eax, dword [esi + 0xcac]
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.004a5640
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004a48a0
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 0x490de1
xor edx, edx
mov ecx, 0x14
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], ecx
lea ebx, [ebx]
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x490ef6
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x490eb2
push str.achievement
mov ecx, eax
call fcn.004a36f0
jmp 0x490eb4
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x2c], eax
push 0x4e2b14
mov byte [ebp - 4], 1
call fcn.004a5640
mov eax, dword [esi + 0xcac]
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.004a5640
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.004a48a0
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 0x490e80
mov ecx, 0x500
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x2c], ecx
jmp 0x490f20
mov eax, dword [esi + 0xcac]
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 0x490f44
test eax, eax
je 0x490faf
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x490f67
push str.level
mov ecx, eax
call fcn.004a36f0
jmp 0x490f69
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x30], eax
push 0x4e67a0
mov byte [ebp - 4], 1
call fcn.004a5640
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
push str.moves
call fcn.004a5640
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push str.time
call fcn.004a5640
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.004a48a0
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 0x490f20
xor edx, edx
mov ecx, 0x76c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x49102c
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x491004
push str.hintstatus
mov ecx, eax
call fcn.004a36f0
jmp 0x491006
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4e67a0
mov byte [ebp - 4], 1
call fcn.004a5640
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004a48a0
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 0x490fd2
xor edx, edx
mov ecx, 0x7b8
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
jmp 0x491050
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x4910aa
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x491082
push str.GhostStatus
mov ecx, eax
call fcn.004a36f0
jmp 0x491084
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4e67a0
mov byte [ebp - 4], 1
call fcn.004a5640
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004a48a0
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 0x491050
xor edx, edx
mov ecx, 0x7e4
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 0xcac]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x49112a
push 0x50
call fcn.004c0d0a
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x491102
push str.RandomCoinStatus
mov ecx, eax
call fcn.004a36f0
jmp 0x491104
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4e67a0
mov byte [ebp - 4], 1
call fcn.004a5640
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004a48a0
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 0x4910d0
push ebx
lea ecx, [ebp - 0x84]
call fcn.004a48a0
mov eax, dword [esi + 0xcb0]
inc edi
sub eax, dword [esi + 0xcac]
sar eax, 2
cmp edi, eax
jb 0x490954
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x84]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004a5470
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
mov dword [ebp - 0x84], vtable.TiXmlDocument.0
cmp eax, 0x5199f4
je 0x491198
push eax
call fcn.004c0d5b
add esp, 4
lea ecx, [ebp - 0x84]
call fcn.004a3b80
cmp dword [ebp - 0x14], 8
jb 0x4911b4
push dword [ebp - 0x28]
call fcn.004c0d5b
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.004c1624
mov esp, ebp
pop ebp
ret