Function at 0x4010b0
Capabilities:
Get geographical location

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x401661
sub esp, 0x64
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
jmp 0x4010d9
mov edx, eax
mov eax, ecx
mov ecx, edx
test eax, eax
je 0x4014c5
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 0x2c
call fcn.00401670
mov ecx, dword [esp + 0xc]
test ecx, ecx
jge 0x401494
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x18]
cmp edx, 4
jl 0x4010d3
mov ebx, dword [esp + 0x34]
cmp dword [ebx], 0x2e757063
jne 0x4010d3
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov byte [esp + 8], 0x3d
call fcn.00401670
mov ecx, dword [esp + 0xc]
test ecx, ecx
jl 0x40143d
mov edx, dword [esp + 0x18]
cmp ecx, edx
ja 0x40164f
cmp ecx, 4
jb 0x401645
lea ebx, [ecx - 4]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov eax, ebp
mov ebp, dword [esp + 0x34]
mov esi, ebx
add ebx, ebp
mov edi, ebx
lea ebx, [ecx + 1]
cmp ebx, edx
ja 0x40163c
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], edi
sub edx, ebx
mov dword [esp + 0x14], edx
neg edx
sar edx, 0x1f
and ebx, edx
lea edx, [ebp + ebx]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
cmp edx, 2
jne 0x40140f
movzx ebx, word [ebp + ebx]
cmp bx, 0x6e6f
jne 0x40138e
mov edx, 1
cmp ecx, 7
jne 0x401270
movzx ebx, word [ebp + esi]
cmp bx, 0x6c61
jne 0x401270
movzx ebx, byte [ebp + esi + 2]
cmp bl, 0x6c
jne 0x401270
mov ebx, dword [0xb40f24]
xor eax, eax
jmp 0x401200
xchg ebp, ebx
mov byte [edx + eax + 0xd], bl
xchg ebp, ebx
lea eax, [ecx + 1]
mov edx, esi
mov ebx, edi
cmp eax, ebx
jge 0x401263
mov ecx, dword [0xb40f24]
mov ebp, dword [0xb40f20]
cmp eax, ecx
jae 0x401637
mov ecx, eax
shl eax, 4
mov byte [ebp + eax + 0xc], 1
test dl, dl
je 0x401244
mov ebp, 1
mov esi, edx
mov edx, dword [0xb40f20]
mov edi, ebx
mov ebx, dword [0xb40f24]
cmp ecx, ebx
jb 0x4011f1
jmp 0x401625
mov ebp, dword [0xb40f20]
mov esi, edx
mov edx, dword [0xb40f24]
cmp ecx, edx
jae 0x40162e
movzx ebp, byte [ebp + eax + 0xe]
mov edx, esi
jmp 0x40122b
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
jmp 0x4010d3
mov byte [esp + 0x13], dl
mov ebx, dword [0xb40f24]
mov dword [esp + 0x24], ebx
xor ecx, ecx
jmp 0x40128a
lea ecx, [esi + 1]
movzx edx, byte [esp + 0x13]
cmp ecx, ebx
jge 0x401337
mov ebp, dword [0xb40f20]
mov esi, dword [0xb40f24]
cmp ecx, esi
jae 0x40161c
mov esi, ecx
shl ecx, 4
mov edx, dword [ebp + ecx + 4]
mov ebp, dword [ebp + ecx]
cmp edx, eax
jne 0x401282
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.004023f0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4012ea
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
jmp 0x401282
mov edx, dword [0xb40f20]
mov ecx, dword [0xb40f24]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jae 0x401617
mov ebx, dword [esp + 0x1c]
mov byte [edx + ebx + 0xc], 1
mov edx, dword [0xb40f20]
mov ecx, dword [0xb40f24]
cmp eax, ecx
jae 0x401612
movzx ebp, byte [esp + 0x13]
xchg ebp, eax
mov byte [edx + ebx + 0xd], al
xchg ebp, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
jmp 0x4010d3
call fcn.00432510
lea eax, [0x7f4387]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00432db0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7e3297]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00432db0
call fcn.00432580
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
jmp 0x4010d3
call fcn.00432510
lea eax, [0x7ea1ae]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.00432db0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7f57d6]
mov dword [esp], eax
mov dword [esp + 4], 0x20
call fcn.00432db0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7e3297]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00432db0
call fcn.00432580
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
jmp 0x4010d3
cmp edx, 3
jne 0x40138e
movzx edx, word [ebp + ebx]
cmp dx, 0x666f
jne 0x40138e
movzx edx, byte [ebp + ebx + 2]
cmp dl, 0x66
jne 0x40138e
xor edx, edx
jmp 0x4011c0
call fcn.00432510
lea eax, [0x7f5f7b]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00432db0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7e3297]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00432db0
call fcn.00432580
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
jmp 0x4010d3
mov edx, dword [esp + 0x18]
cmp ecx, edx
ja 0x40165b
lea eax, [ecx + 1]
cmp eax, edx
ja 0x401654
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov ebp, dword [esp + 0x34]
add eax, ebp
mov edx, ecx
mov ecx, ebx
jmp 0x40110e
mov eax, dword [0xb40f24]
mov ecx, dword [0xb40f20]
test eax, eax
jle 0x40153a
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x4014e8
mov ebx, dword [esp + 0x38]
add ebx, 0x10
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x54]
mov esi, ecx
call fcn.00459da8
lea edi, [esp + 0x44]
lea esi, [esp + 0x54]
call fcn.00459da8
movzx ecx, byte [esp + 0x50]
test cl, cl
je 0x401533
mov dword [esp + 0x28], edx
movzx ecx, byte [esp + 0x51]
test cl, cl
je 0x40152b
mov ebx, dword [esp + 0x4c]
movzx ebx, byte [ebx]
test bl, bl
je 0x4015ab
test cl, cl
je 0x40153e
mov ebx, dword [esp + 0x4c]
mov byte [ebx], cl
lea ecx, [edx + 1]
cmp ecx, eax
jl 0x4014dd
add esp, 0x64
ret
movzx ebx, byte [esp + 0x52]
test bl, bl
je 0x40152d
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
call fcn.00432510
lea eax, [0x7f18e2]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
call fcn.00432db0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7f05ad]
mov dword [esp], eax
mov dword [esp + 4], 0x18
call fcn.00432db0
call fcn.00432580
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
jmp 0x401533
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
call fcn.00432510
lea eax, [0x7f0d46]
mov dword [esp], eax
mov dword [esp + 4], 0x19
call fcn.00432db0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.00432db0
lea eax, [0x7ef91e]
mov dword [esp], eax
mov dword [esp + 4], 0x17
call fcn.00432db0
call fcn.00432580
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
jmp 0x401533
call fcn.004596a0
call fcn.004596a0
mov eax, ecx
mov ecx, esi
call fcn.004596a0
mov eax, ecx
mov ecx, ebx
call fcn.004596a0
mov eax, ecx
mov ecx, edx
call fcn.004596a0
call fcn.004596a0
mov eax, ebx
mov ecx, edx
call fcn.00459700
mov eax, 4
call fcn.00459700
call fcn.004596c0
mov ecx, edx
call fcn.00459700
call fcn.004596c0
nop
call fcn.00457de0
jmp fcn.004010b0