Function at 0x487380
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd26e
mov eax, dword fs:[0]
push eax
sub esp, 0xac
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 ebx, ecx
mov dword [ebp - 0x34], ebx
call fcn.00486f80
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 - 0xb8]
call fcn.0049a860
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.0049bea0
test al, al
je 0x487c31
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x68]
lea eax, [ebp - 0x70]
push eax
call fcn.0049ba00
mov esi, eax
mov ecx, dword [esi]
test ecx, ecx
je 0x487bf8
mov edx, dword [ecx]
call dword [edx + 0x14]
test eax, eax
je 0x487bf8
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edi, eax
mov dword [ebp - 0x3c], edi
test edi, edi
je 0x487bf8
lea ecx, [ecx]
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 0x487480
test bl, bl
je 0x48747c
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x487480
add eax, 2
add edx, 2
test bl, bl
jne 0x487460
xor eax, eax
jmp 0x487485
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4874b2
lea eax, [ebp - 0x5c]
mov ecx, edi
push eax
push str.active
call fcn.0049c680
test eax, eax
jne 0x487c31
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0xc84], eax
jmp 0x487be4
mov eax, str.profile
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4874d7
test dl, dl
je 0x4874d3
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4874d7
add ecx, 2
add eax, 2
test dl, dl
jne 0x4874b7
xor eax, eax
jmp 0x4874dc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487be1
push str.name
mov ecx, edi
call fcn.0049b170
mov esi, eax
test esi, esi
je 0x487be1
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0
push eax
push str.TimedMode
mov ecx, edi
call fcn.0049c680
push 0x838
call fcn.004b0566
add esp, 4
mov dword [ebp - 0x54], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x48753b
push dword [ebp - 0x4c]
mov ecx, eax
push esi
call fcn.00485d10
mov ebx, eax
mov dword [ebp - 0x2c], eax
jmp 0x487540
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 0x487558
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
push eax
call fcn.00486370
test al, al
jne 0x487c8d
lea eax, [ebx + 8]
mov ecx, edi
mov dword [eax], 0
push eax
push str.MovesLimitMode
call fcn.0049c680
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
push str.level
call fcn.0049c680
test eax, eax
jne 0x48759c
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.0049c680
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.0049c680
lea eax, [ebx + 0x29c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.SkipMahjongCount
call fcn.0049c680
lea eax, [ebx + 0x280]
mov ecx, edi
mov dword [eax], 1
push eax
push str.InitStatus
call fcn.0049c680
lea eax, [ebx + 0x764]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Status
call fcn.0049c680
lea eax, [ebx + 0x830]
mov ecx, edi
mov dword [eax], 1
push eax
push str.SnowInM3
call fcn.0049c680
lea eax, [ebx + 0x278]
mov ecx, edi
mov dword [eax], 0
push eax
push str.MahjongCompleted
call fcn.0049c680
lea eax, [ebx + 0x810]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Season
call fcn.0049c680
lea eax, [ebx + 0x814]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Clouds
call fcn.0049c680
lea eax, [ebx + 4]
mov ecx, edi
mov dword [eax], 1
push eax
push str.EnabledHints
call fcn.0049c680
lea eax, [ebx + 0x818]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Rain
call fcn.0049c680
lea eax, [ebx + 0x820]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Rainbow
call fcn.0049c680
lea eax, [ebx + 0x824]
mov ecx, edi
mov dword [eax], 0
push eax
push 0x4d5090
call fcn.0049c680
lea eax, [ebx + 0x82c]
push eax
push str.CurrentDate
mov ecx, edi
mov dword [eax], 1
call fcn.0049c680
lea eax, [ebx + 0x828]
mov ecx, edi
mov dword [eax], 1
push eax
push str.Illumination
call fcn.0049c680
lea eax, [ebx + 0x81c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.Snow
call fcn.0049c680
lea eax, [ebx + 0x80c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.TotalCoinsCount
call fcn.0049c680
lea eax, [ebx + 0x7e0]
mov ecx, edi
mov dword [eax], 0
push eax
push str.LastBuilding
call fcn.0049c680
lea eax, [ebx + 0x79c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.WasChallengeMode
call fcn.0049c680
lea eax, [ebx + 0x758]
mov ecx, edi
mov dword [eax], 0
push eax
push str.OopsHintCount
call fcn.0049c680
lea eax, [ebx + 0x27c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.HogCompleted
call fcn.0049c680
lea eax, [ebx + 0x274]
mov ecx, edi
mov dword [eax], 0
push eax
push str.SolitaireCompleted
call fcn.0049c680
lea eax, [ebx + 0x10]
mov ecx, edi
mov dword [eax], 0x1e
push eax
push str.CoinsCount
call fcn.0049c680
lea eax, [ebx + 0x2a0]
mov ecx, edi
mov dword [eax], 0
push eax
push str.AddedTime
call fcn.0049c680
lea eax, [ebx + 0x2a4]
mov ecx, edi
mov dword [eax], 0
push eax
push str.AddedMoves
call fcn.0049c680
lea eax, [ebx + 0x75c]
mov ecx, edi
mov dword [eax], 0
push eax
push str.OutroStatus
call fcn.0049c680
lea eax, [ebx + 0x288]
xorps xmm0, xmm0
movsd qword [eax], xmm0
push eax
push str.TotalTime
mov ecx, edi
call fcn.0049c640
lea eax, [ebx + 0x290]
xorps xmm0, xmm0
push eax
push str.TimeInLevel
mov ecx, edi
movsd qword [eax], xmm0
call fcn.0049c640
lea eax, [ebx + 0x270]
mov ecx, edi
mov dword [eax], 0
push eax
push str.TotalBonusUsed
call fcn.0049c680
lea eax, [ebx + 0x768]
mov ecx, edi
mov dword [eax], 0x400
push eax
push str.CityPosition
call fcn.0049c680
lea eax, [ebx + 0x794]
mov ecx, edi
mov dword [eax], 0
push eax
push str.GreatTimingCounter
call fcn.0049c680
lea eax, [ebx + 0x798]
mov ecx, edi
mov dword [eax], 0
push eax
push str.BarrelLevelCompleted
call fcn.0049c680
lea eax, [ebx + 0x284]
mov ecx, edi
mov dword [eax], 0
push eax
push str.ComboCount
call fcn.0049c680
mov ecx, edi
call fcn.0049ba90
mov edi, eax
test edi, edi
je 0x487bca
jmp 0x4878f0
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 0x487920
test al, al
je 0x48791c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x487920
add edx, 2
add esi, 2
test al, al
jne 0x487900
xor eax, eax
jmp 0x487925
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487970
lea eax, [ebp - 0x50]
mov ecx, edi
push eax
push 0x4d1744
call fcn.0049c680
test eax, eax
jne 0x487bb9
cmp dword [ebp - 0x50], 0x63
ja 0x487bb9
mov dword [ebp - 0x30], eax
mov ecx, edi
lea eax, [ebp - 0x30]
push eax
push str.value
call fcn.0049c680
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
mov dword [ebx + ecx*4 + 0xdc], eax
jmp 0x487bb9
mov edx, str.achievement
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x487997
test bl, bl
je 0x487993
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x487997
add eax, 2
add edx, 2
test bl, bl
jne 0x487977
xor eax, eax
jmp 0x48799c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4879f1
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
push 0x4d1744
call fcn.0049c680
test eax, eax
jne 0x487bb6
cmp dword [ebp - 0x48], 0x31
ja 0x487bb6
mov dword [ebp - 0x30], eax
mov ecx, edi
lea eax, [ebp - 0x30]
push eax
push str.value
call fcn.0049c680
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 0x487bb9
mov edx, str.level
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x487a18
test bl, bl
je 0x487a14
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x487a18
add eax, 2
add edx, 2
test bl, bl
jne 0x4879f8
xor eax, eax
jmp 0x487a1d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487a96
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push 0x4d5038
call fcn.0049c680
test eax, eax
jne 0x487bb6
mov eax, dword [ebp - 0x38]
dec eax
cmp eax, 0x63
ja 0x487bb6
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0
push eax
push str.moves
mov ecx, edi
call fcn.0049c680
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.0049c680
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov dword [ebx + ecx*4 + 0x4fc], eax
jmp 0x487bb9
mov edx, str.hintstatus
mov eax, ecx
lea ecx, [ecx]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x487ac0
test bl, bl
je 0x487abc
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x487ac0
add eax, 2
add edx, 2
test bl, bl
jne 0x487aa0
xor eax, eax
jmp 0x487ac5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487b00
lea eax, [ebp - 0x60]
mov ecx, edi
push eax
push 0x4d5038
call fcn.0049c680
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x487bb9
mov eax, dword [ebp - 0x60]
cmp eax, 9
ja 0x487bb9
mov dword [ebx + eax*4 + 0x76c], 1
jmp 0x487bb9
mov edx, str.GhostStatus
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x487b27
test bl, bl
je 0x487b23
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x487b27
add eax, 2
add edx, 2
test bl, bl
jne 0x487b07
xor eax, eax
jmp 0x487b2c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487b5c
lea eax, [ebp - 0x64]
mov ecx, edi
push eax
push 0x4d5038
call fcn.0049c680
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x487bb9
mov eax, dword [ebp - 0x64]
cmp eax, 9
ja 0x487bb9
mov dword [ebx + eax*4 + 0x7b8], 1
jmp 0x487bb9
mov eax, str.RandomCoinStatus
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x487b81
test dl, dl
je 0x487b7d
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x487b81
add ecx, 2
add eax, 2
test dl, dl
jne 0x487b61
xor eax, eax
jmp 0x487b86
sbb eax, eax
or eax, 1
test eax, eax
jne 0x487bb6
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
push 0x4d5038
call fcn.0049c680
mov ebx, dword [ebp - 0x2c]
test eax, eax
jne 0x487bb9
mov eax, dword [ebp - 0x6c]
cmp eax, 9
ja 0x487bb9
mov dword [ebx + eax*4 + 0x7e4], 1
jmp 0x487bb9
mov ebx, dword [ebp - 0x2c]
mov ecx, edi
call fcn.0049bf60
mov edi, eax
test edi, edi
jne 0x4878f0
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebx + 0xc9c]
call fcn.0048def0
mov edi, dword [ebp - 0x3c]
jmp 0x487be4
mov ebx, dword [ebp - 0x34]
mov ecx, edi
call fcn.0049bf60
mov edi, eax
mov dword [ebp - 0x3c], eax
test edi, edi
jne 0x487450
mov ecx, dword [ebx + 0xc84]
test ecx, ecx
js 0x487c15
mov eax, dword [ebx + 0xca0]
sub eax, dword [ebx + 0xc9c]
sar eax, 2
cmp ecx, eax
jl 0x487c31
mov eax, dword [ebx + 0xca0]
sub eax, dword [ebx + 0xc9c]
and eax, 0xfffffffc
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [ebx + 0xc84], eax
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x5c52ec
je 0x487c55
push eax
call fcn.004b05b7
add esp, 4
lea ecx, [ebp - 0xb8]
call fcn.0049add0
cmp dword [ebp - 0x14], 8
jb 0x487c71
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
test ebx, ebx
je 0x487c31
cmp dword [ebx + 0x7b4], 0x10
jb 0x487ca8
push dword [ebx + 0x7a0]
call fcn.004b05b7
add esp, 4
mov dword [ebx + 0x7b4], 0xf
mov dword [ebx + 0x7b0], 0
push ebx
mov byte [ebx + 0x7a0], 0
call fcn.004b05b7
add esp, 4
jmp 0x487c31