Function at 0x408e50
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x14
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
test byte [ecx], al
mov dword [esp], ecx
mov dword [esp + 4], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 8], edx
call fcn.00402020
movzx eax, byte [esp + 0xc]
test al, al
je 0x4090d4
mov eax, dword [esp + 0x20]
test eax, eax
setl cl
mov edx, dword [esp + 0x1c]
test edx, edx
setb bl
test eax, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebx, ebp
or ebx, ecx
test bl, bl
je 0x408f36
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x18]
mov byte [ecx + 0x85], 1
mov ecx, dword [0xb3b080]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x408eed
jmp 0x408f20
mov eax, dword [0xb3b080]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00459010
mov dword [esp], 0x989680
mov dword [esp + 4], 0
call fcn.0042d6b0
mov eax, dword [esp + 8]
test eax, eax
jl 0x408ed5
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x85], 0
mov byte [esp + 0x30], 1
add esp, 0x14
ret
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call fcn.0042d6b0
jmp 0x408f09
call fcn.0045a630
mov eax, dword [esp]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x20]
adc edx, ebx
mov dword [esp + 0x2c], edx
jmp 0x408f5c
mov eax, edx
mov edx, ebp
mov ebp, dword [esp + 0x24]
mov esi, dword [ebp + 0x18]
mov byte [esi + 0x85], 1
mov esi, dword [0xb3b080]
mov esi, dword [esi]
test esi, esi
je 0x4090cd
cmp ecx, 0x989680
xchg esi, ebx
seta bl
xchg esi, ebx
test ebx, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
sete dl
and esi, edx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x4090cd
mov ecx, 0x989680
xor edx, edx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0042d6b0
mov eax, dword [esp + 8]
test eax, eax
jge 0x4090b6
mov eax, dword [0xb3b080]
mov eax, dword [eax]
test eax, eax
jne 0x4090a1
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x18]
mov byte [ecx + 0x85], 0
call fcn.0045a630
mov eax, dword [esp]
mov ecx, dword [esp + 0x28]
mov edx, ecx
sub ecx, eax
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
mov ebp, ebx
sbb ebx, eax
test ecx, ecx
setbe al
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setl bl
xchg edi, ebx
and eax, esi
or eax, edi
test al, al
je 0x408f58
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00402040
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x18]
mov ebx, edx
cmp edx, eax
jne 0x40905e
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.00402020
movzx eax, byte [esp + 0xc]
test al, al
je 0x40901b
mov byte [esp + 0x30], 0
add esp, 0x14
ret
cmp eax, 1
jne 0x4090fc
mov byte [ebx + 0x85], 1
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
call fcn.0042d6b0
mov eax, dword [esp + 8]
test eax, eax
jl 0x4090e6
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x85], 0
mov byte [esp + 0x30], 1
add esp, 0x14
ret
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00459010
jmp 0x408fd0
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x85], 0
mov byte [esp + 0x30], 1
add esp, 0x14
ret
mov edx, ebx
jmp 0x408fa8
mov eax, dword [esp + 0x18]
cmp dword [eax], 1
jne 0x409112
mov byte [esp + 0x30], 1
add esp, 0x14
ret
lea eax, [0x7fc606]
mov dword [esp], eax
mov dword [esp + 4], 0x32
call fcn.00430c90
lea eax, [0x7fc0ff]
mov dword [esp], eax
mov dword [esp + 4], 0x31
call fcn.00430c90
lea eax, [0x7f4837]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00430c90
nop
int3