Function at 0x4882d0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd316
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x4fdb40]
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 + 0xca0]
sub eax, dword [esi + 0xc9c]
test eax, 0xfffffffc
je 0x488bf4
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.00486400
add esp, 4
lea ecx, [ebp - 0x84]
call fcn.0049a860
push 0x38
mov byte [ebp - 4], 1
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x488373
push 0x4d0308
push 0x4d0308
push 0x4d5dac
mov ecx, eax
call fcn.0049a5e0
jmp 0x488375
xor eax, eax
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 1
call fcn.0049baf0
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x4883aa
push str.meta
mov ecx, eax
call fcn.0049a940
mov edi, eax
jmp 0x4883ac
xor edi, edi
push dword [esi + 0xc84]
mov ecx, edi
mov byte [ebp - 4], 1
push str.active
call fcn.0049c890
push edi
lea ecx, [ebp - 0x84]
call fcn.0049baf0
mov eax, dword [esi + 0xca0]
xor edi, edi
sub eax, dword [esi + 0xc9c]
sar eax, 2
test eax, eax
je 0x488ba0
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x48840c
push str.profile
mov ecx, eax
call fcn.0049a940
mov ebx, eax
jmp 0x48840e
xor ebx, ebx
mov eax, dword [esi + 0xc9c]
mov byte [ebp - 4], 1
mov eax, dword [eax + edi*4]
add eax, 0x7a0
cmp dword [eax + 0x14], 0x10
jb 0x488428
mov eax, dword [eax]
push eax
push str.name
mov ecx, ebx
call fcn.0049c740
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x26c]
push str.level
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0xc], 0
je 0x48846d
push 1
push str.Completed
mov ecx, ebx
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x10]
push str.CoinsCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x80c]
push str.TotalCoinsCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x764]
push str.Status
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x270]
push str.TotalBonusUsed
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x768]
push str.CityPosition
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a0]
push str.AddedTime
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x2a4]
push str.AddedMoves
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x758]
push str.OopsHintCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
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.0049c890
mov eax, dword [esi + 0xc9c]
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.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x280]
push str.InitStatus
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x75c]
push str.OutroStatus
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
push dword [eax + 0x27c]
push str.HogCompleted
mov ecx, ebx
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x274]
push str.SolitaireCompleted
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x798]
push str.BarrelLevelCompleted
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x794]
push str.GreatTimingCounter
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x284]
push str.ComboCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x298]
push str.SkipSolitairesCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x29c]
push str.SkipMahjongCount
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x79c]
push str.WasChallengeMode
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x7e0]
push str.LastBuilding
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x810]
push str.Season
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x814]
push str.Clouds
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x818]
push str.Rain
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x820]
push str.Rainbow
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x82c]
push str.CurrentDate
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x824]
push 0x4d5090
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x828]
push str.Illumination
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x81c]
push str.Snow
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 4]
push str.EnabledHints
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x278]
push str.MahjongCompleted
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
mov ecx, ebx
mov eax, dword [eax + edi*4]
push dword [eax + 0x830]
push str.SnowInM3
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
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.0049c8e0
mov eax, dword [esi + 0xc9c]
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.0049c8e0
xor edx, edx
mov ecx, 0xdc
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x488899
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x488855
push str.buildings
mov ecx, eax
call fcn.0049a940
jmp 0x488857
xor eax, eax
push dword [ebp - 0x30]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4d1744
mov byte [ebp - 4], 1
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
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.0049c890
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.0049baf0
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 0x488823
xor edx, edx
mov ecx, 0x14
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x488936
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x4888f2
push str.achievement
mov ecx, eax
call fcn.0049a940
jmp 0x4888f4
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x2c], eax
push 0x4d1744
mov byte [ebp - 4], 1
call fcn.0049c890
mov eax, dword [esi + 0xc9c]
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.0049c890
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0049baf0
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 0x4888c0
mov ecx, 0x500
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x2c], ecx
jmp 0x488960
mov eax, dword [esi + 0xc9c]
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 0x488984
test eax, eax
je 0x4889ef
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x4889a7
push str.level
mov ecx, eax
call fcn.0049a940
jmp 0x4889a9
xor eax, eax
push dword [ebp - 0x34]
mov ecx, eax
mov dword [ebp - 0x30], eax
push 0x4d5038
mov byte [ebp - 4], 1
call fcn.0049c890
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
push str.moves
call fcn.0049c890
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push str.time
call fcn.0049c890
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.0049baf0
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 0x488960
xor edx, edx
mov ecx, 0x76c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x488a6c
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x488a44
push str.hintstatus
mov ecx, eax
call fcn.0049a940
jmp 0x488a46
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4d5038
mov byte [ebp - 4], 1
call fcn.0049c890
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.0049baf0
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 0x488a12
xor edx, edx
mov ecx, 0x7b8
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
jmp 0x488a90
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x488aea
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x488ac2
push str.GhostStatus
mov ecx, eax
call fcn.0049a940
jmp 0x488ac4
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4d5038
mov byte [ebp - 4], 1
call fcn.0049c890
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.0049baf0
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 0x488a90
xor edx, edx
mov ecx, 0x7e4
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 0xc9c]
mov eax, dword [eax + edi*4]
cmp dword [ecx + eax], 0
je 0x488b6a
push 0x50
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x488b42
push str.RandomCoinStatus
mov ecx, eax
call fcn.0049a940
jmp 0x488b44
xor eax, eax
push dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x34], eax
push 0x4d5038
mov byte [ebp - 4], 1
call fcn.0049c890
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.0049baf0
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 0x488b10
push ebx
lea ecx, [ebp - 0x84]
call fcn.0049baf0
mov eax, dword [esi + 0xca0]
inc edi
sub eax, dword [esi + 0xc9c]
sar eax, 2
cmp edi, eax
jb 0x4883e7
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x84]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.0049c6c0
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0
mov dword [ebp - 0x84], vtable.TiXmlDocument.0
cmp eax, 0x5c52ec
je 0x488bd8
push eax
call fcn.004b05b7
add esp, 4
lea ecx, [ebp - 0x84]
call fcn.0049add0
cmp dword [ebp - 0x14], 8
jb 0x488bf4
push dword [ebp - 0x28]
call fcn.004b05b7
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.004b0e84
mov esp, ebp
pop ebp
ret