Function at 0x521d64
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
add esp, 0xffffff94
mov byte [esp], cl
mov ebx, eax
cmp byte [esp], 0
je 0x521d81
mov eax, 0x36
dec eax
jne 0x521d79
jmp 0x522565
xor eax, eax
test dl, dl
lea ecx, [eax + eax*4]
xor esi, esi
mov dword [ebx + ecx*8 + 0x524c], esi
inc eax
cmp eax, 0x36
jne 0x521d83
lea esi, [ebx + 0x5248]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522574
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5270]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522590
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5450]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5225a0
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5478]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5225c0
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5298]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5225dc
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x52c0]
mov dword [esi + 4], 1
mov eax, esi
mov edx, 0x5225f8
call fcn.00404778
xor eax, eax
mov dword [esi + 8], eax
lea esi, [ebx + 0x52e8]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52260c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5310]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52261c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5338]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522630
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5360]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522644
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5388]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522664
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x53b0]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522680
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x53d8]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x522698
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5400]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5226b0
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5428]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5226d4
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x54a0]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5226fc
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x54c8]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52271c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x54f0]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52273c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5518]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52275c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5540]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52277c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5568]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x52279c
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x55b8]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5227b4
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x55e0]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5227d4
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5608]
mov dword [esi + 4], 3
mov eax, esi
mov edx, 0x5227f4
call fcn.00404778
mov byte [esi + 0x10], 0
lea esi, [ebx + 0x5590]
mov dword [esi + 4], 1
mov eax, esi
mov edx, 0x522818
call fcn.00404778
xor eax, eax
mov dword [esi + 8], eax
lea esi, [ebx + 0x56d0]
mov dword [esi + 4], 1
mov eax, esi
mov edx, 0x522834
call fcn.00404778
mov dword [esi + 8], 0x7fffffff
lea eax, [ebx + 0x5658]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov dword [eax + 4], 3
mov eax, dword [esp + 4]
mov edx, 0x522850
call fcn.00404778
mov eax, dword [esp + 4]
mov byte [eax + 0x10], 0
lea eax, [ebx + 0x5680]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov dword [eax + 4], 3
mov eax, dword [esp + 8]
mov edx, 0x52286c
call fcn.00404778
mov eax, dword [esp + 8]
mov byte [eax + 0x10], 0
lea eax, [ebx + 0x5720]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 4], 1
mov eax, dword [esp + 0xc]
mov edx, 0x522888
call fcn.00404778
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5630]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 2
mov eax, dword [esp + 0x10]
mov edx, 0x52289c
call fcn.00404778
mov eax, dword [esp + 0x10]
add eax, 0xc
call fcn.00404724
lea eax, [ebx + 0x56f8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x14]
mov edx, 0x5228b0
call fcn.00404778
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5748]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x18]
mov edx, 0x5228c4
call fcn.00404778
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5770]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x1c]
mov edx, 0x5228dc
call fcn.00404778
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5798]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x20]
mov edx, 0x5228f4
call fcn.00404778
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x57c0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x24]
mov edx, 0x522910
call fcn.00404778
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5810]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x28]
mov edx, 0x522924
call fcn.00404778
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x57e8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x2c]
mov edx, 0x522938
call fcn.00404778
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5838]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x30]
mov edx, 0x52294c
call fcn.00404778
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5860]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x34]
mov edx, 0x522960
call fcn.00404778
mov eax, dword [esp + 0x34]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5888]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x38]
mov edx, 0x522978
call fcn.00404778
mov eax, dword [esp + 0x38]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x58b0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x3c]
mov edx, 0x52298c
call fcn.00404778
mov eax, dword [esp + 0x3c]
mov dword [eax + 8], 0x7fffffff
lea eax, [ebx + 0x58d8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x40]
mov edx, 0x5229a4
call fcn.00404778
mov eax, dword [esp + 0x40]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5900]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x44]
mov edx, 0x5229bc
call fcn.00404778
mov eax, dword [esp + 0x44]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5928]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x48]
mov edx, 0x5229d4
call fcn.00404778
mov eax, dword [esp + 0x48]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5950]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x4c]
mov edx, 0x5229e4
call fcn.00404778
mov eax, dword [esp + 0x4c]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x56a8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x50]
mov edx, 0x5229f8
call fcn.00404778
mov eax, dword [esp + 0x50]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x5978]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x54]
mov edx, 0x522a0c
call fcn.00404778
mov eax, dword [esp + 0x54]
xor edx, edx
mov dword [eax + 8], edx
lea eax, [ebx + 0x59a0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x58]
mov edx, 0x522a28
call fcn.00404778
mov eax, dword [esp + 0x58]
mov dword [eax + 8], 0x7fffffff
lea eax, [ebx + 0x59c8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x5c]
mov edx, 0x522a40
call fcn.00404778
mov eax, dword [esp + 0x5c]
mov dword [eax + 8], 0x7fffffff
lea eax, [ebx + 0x59f0]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 2
mov eax, dword [esp + 0x60]
mov edx, 0x522a54
call fcn.00404778
mov eax, dword [esp + 0x60]
add eax, 0xc
call fcn.00404724
lea eax, [ebx + 0x5a18]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov dword [eax + 4], 2
mov eax, dword [esp + 0x64]
mov edx, 0x522a6c
call fcn.00404778
mov eax, dword [esp + 0x64]
add eax, 0xc
call fcn.00404724
lea eax, [ebx + 0x5a40]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x68]
mov edx, 0x522a84
call fcn.00404778
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 8], edx
lea esi, [ebx + 0x5a68]
mov dword [esi + 4], 5
mov eax, esi
mov edx, 0x522aa0
call fcn.00404778
lea eax, [ebx + 0x5b18]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 0x118
lea esi, [ebx + 0x5a90]
mov dword [esi + 4], 5
mov eax, esi
mov edx, 0x522abc
call fcn.00404778
lea eax, [ebx + 0x984]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 0xc4
add esp, 0x6c
pop esi
pop ebx
ret