Function at 0x462a60
Capabilities:
Get geographical location

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x462dbb
sub esp, 0x3c
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x462aa7
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x40]
mov eax, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x40]
mov eax, esi
mov esi, edi
mov edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
xchg ebp, eax
mov byte [esp + 0x15], al
xchg ebp, eax
mov byte [esp + 0x13], bl
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
and ecx, 5
mov dword [esp + 0x30], ecx
cmp ecx, 1
je 0x462d87
mov dword [esp + 0x34], eax
xor eax, eax
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x34]
movzx esi, byte [esp + 0x17]
xchg esi, eax
test al, al
xchg esi, eax
je 0x462b5b
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x462b24
xor ecx, ecx
mov byte [esp + 0x17], cl
call fcn.0043e510
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
movzx ebx, byte [esp + 0x15]
movzx ebp, byte [esp + 0x17]
or ebx, ebp
movzx ebp, byte [esp + 0x13]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x462a8b
mov ecx, dword [esp + 0x24]
test ecx, 2
jne 0x462b57
mov esi, ecx
sar ecx, 3
test ecx, ecx
jne 0x462b3d
xor ecx, ecx
jmp 0x462af2
mov dword [esp], eax
mov dword [esp + 4], esi
or esi, 2
mov dword [esp + 8], esi
call fcn.0045eaa0
movzx ecx, byte [esp + 0xc]
jmp 0x462af2
xor ecx, ecx
jmp 0x462af2
mov esi, dword [esp + 0x24]
test esi, 4
jne 0x462b6a
or esi, 1
test ecx, ecx
je 0x462b71
add esi, 8
test bl, bl
je 0x462d7e
mov ecx, dword [esp + 0x24]
test ecx, 1
je 0x462b88
or esi, 4
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x462b9d
test esi, 2
je 0x462d41
and esi, 0xfffffffd
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0045eaa0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x462bf3
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x13]
movzx ebp, byte [esp + 0x15]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov ecx, ebp
mov ebp, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x40]
mov ecx, esi
mov esi, edi
mov edi, ecx
mov ecx, dword [esp + 0x40]
jmp 0x462a8b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x462cde
mov eax, dword [esp + 0x18]
test eax, eax
setne cl
mov edx, dword [esp + 0x1c]
test edx, edx
setne bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
test eax, eax
xchg esi, ebx
sete bl
xchg esi, ebx
or ebx, ecx
and ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x462d27
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x40]
lea ebp, [ecx + 4]
mov dword [esp], ebp
mov byte [esp + 4], bl
mov dword [esp + 8], 1
call fcn.004412f0
movzx eax, byte [esp + 0x13]
test al, al
je 0x462cf2
mov eax, 1
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
test edx, 4
jne 0x462c8e
mov ecx, edx
xor edx, edx
mov ebx, eax
mov ebp, 1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
jmp 0x462bd2
mov byte [esp + 0x16], al
mov dword [esp + 0x20], edx
test edx, 3
je 0x462ce9
lea eax, [0x7f49f9]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00430c50
movzx eax, byte [esp + 0x16]
test al, al
je 0x462cc9
mov eax, dword [esp + 0x20]
sar eax, 3
cmp eax, 1
jne 0x462ce2
mov eax, 0xfffffff5
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0045eae0
add esp, 0x3c
ret
mov eax, 0xfffffff9
jmp 0x462cce
sar edx, 3
test edx, edx
je 0x462c9e
jmp 0x462cb4
call fcn.004428e0
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
sub eax, ecx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
sbb edx, ebx
test edx, edx
sete dl
xchg ebp, ebx
setg bl
xchg ebp, ebx
cmp eax, 0xf4240
seta al
and eax, edx
or eax, ebp
jmp 0x462c64
mov byte [esp + 0x14], bl
call fcn.004428e0
mov eax, dword [esp]
mov edx, dword [esp + 4]
movzx ebx, byte [esp + 0x14]
jmp 0x462c2f
mov dword [esp + 0x2c], esi
lea eax, [0x7f49f9]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00430c50
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x13]
movzx ebp, byte [esp + 0x15]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
jmp 0x462b9a
mov ecx, dword [esp + 0x24]
jmp 0x462b88
mov dword [esp], edx
call fcn.0043e4a0
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x13]
movzx ebp, byte [esp + 0x15]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x40]
jmp 0x462adf
call fcn.00457de0
jmp fcn.00462a60