Function at 0x4063c6
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10c
mov eax, dword [0x40e028]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push esi
push edi
push str.0.02
mov esi, ecx
push str.Version
push esi
call fcn.0040638b
mov eax, dword [0x40e764]
fld qword [eax + 0x78]
push ecx
push ecx
fstp qword [esp]
push 0x40a194
mov edi, str.Latitude
call fcn.00406282
mov eax, dword [0x40e764]
fld qword [eax + 0x80]
push ecx
push ecx
fstp qword [esp]
push 0x40a1b4
mov edi, str.Longitude
call fcn.00406282
mov eax, dword [0x40e764]
fld qword [eax + 0x98]
push ecx
push ecx
fstp qword [esp]
push 0x40a1d4
mov edi, str.Altitude
call fcn.00406282
mov eax, dword [0x40e764]
cmp dword [eax + 0xa4], 3
jne 0x406465
fld qword [eax + 0xc8]
jmp 0x40646b
fld qword [eax + 0x88]
push ecx
push ecx
fstp qword [esp]
push 0x40a1f4
mov edi, str.Speed
call fcn.00406282
mov eax, dword [0x40e764]
fld qword [eax + 0x90]
push ecx
push ecx
fstp qword [esp]
push 0x40a20c
mov edi, str.Course
call fcn.00406282
mov eax, dword [0x40e764]
movzx eax, byte [eax + 0xa0]
push eax
mov edi, str.AlwaysOnTop
call fcn.0040632d
mov eax, dword [0x40e764]
mov eax, dword [eax + 0xbc]
mov ebx, dword [sym.imp.MSVCR80.dll__swprintf]
mov ecx, eax
movzx edx, al
shr ecx, 0x10
and ecx, 0xff
shl edx, 0x10
mov edi, 0xff00
and eax, edi
or ecx, edx
or ecx, eax
push ecx
lea eax, [esp + 0x14]
push 0x40a240
push eax
call ebx
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push str.Text1ColorRGB
push esi
call fcn.0040638b
mov eax, dword [0x40e764]
mov eax, dword [eax + 0xc0]
mov ecx, eax
movzx edx, al
shr ecx, 0x10
and ecx, 0xff
shl edx, 0x10
and eax, edi
or ecx, edx
or ecx, eax
push ecx
lea eax, [esp + 0x14]
push str._06X
push eax
call ebx
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push str.Text2ColorRGB
push esi
call fcn.0040638b
mov eax, dword [0x40e764]
add eax, 0xf8
push eax
push str.FontFaceName
push esi
call fcn.0040638b
mov eax, dword [0x40e75c]
push dword [eax + 0x9c]
mov edi, str.OziActive
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0xa0]
mov edi, str.OziNoNMEA
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0x88]
mov edi, str.OziInterval
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0x8c]
mov edi, str.OziRMC
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0x90]
mov edi, str.OziGGA
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0x94]
mov edi, str.OziGSA
call fcn.0040632d
mov eax, dword [0x40e75c]
push dword [eax + 0x98]
mov edi, str.OziGSV
call fcn.0040632d
mov dword [esp + 0xc], 1
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dActive
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0x88]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dPort
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
mov eax, dword [eax + 0x94]
add esp, 0xc
inc eax
push eax
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dVirtual
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0x8c]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dBaudRateIndex
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0x98]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dParityIndex
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0x9c]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dStopBitsIndex
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0xa0]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dInterval
push eax
call ebx
add esp, 0xc
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
push dword [eax + 0x90]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dRMC
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0xa4]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dGGA
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0xa8]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dGSA
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0xac]
lea edi, [esp + 0x14]
call fcn.0040632d
mov edi, dword [esp + 0xc]
push edi
lea eax, [esp + 0x14]
push str.Output_dGSV
push eax
call ebx
lea eax, [edi*4 + 0x40e74c]
mov eax, dword [eax]
add esp, 0xc
push dword [eax + 0xb0]
lea edi, [esp + 0x14]
call fcn.0040632d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jle 0x4065f5
mov eax, dword [0x40e748]
fld qword [eax + 0x88]
push ecx
push ecx
fstp qword [esp]
push 0x40a48c
mov edi, str.GPSUpperSpeed
call fcn.00406282
mov eax, dword [0x40e748]
fld qword [eax + 0x90]
push ecx
push ecx
fstp qword [esp]
push str._.2f
mov edi, str.GPSLowerSpeed
call fcn.00406282
mov eax, dword [0x40e748]
fld qword [eax + 0x98]
push ecx
push ecx
fstp qword [esp]
push 0x40a4dc
mov edi, str.GPSTimeOffset
call fcn.00406282
mov eax, dword [0x40e748]
fld qword [eax + 0xa0]
push ecx
push ecx
fstp qword [esp]
push 0x40a504
mov edi, str.GPSTimeFactor
call fcn.00406282
mov eax, dword [0x40e744]
push dword [eax + 0x8c]
mov edi, str.StepIndex
call fcn.0040632d
mov eax, dword [0x40e764]
fld qword [eax + 0xd0]
push ecx
push ecx
fstp qword [esp]
push 0x40a540
mov edi, str.Step
call fcn.00406282
mov eax, dword [0x40e744]
push dword [eax + 0x88]
mov edi, str.LatLonFormatIndex
call fcn.0040632d
mov eax, dword [0x40e744]
fld qword [eax + 0x90]
push ecx
push ecx
fstp qword [esp]
push 0x40a57c
mov edi, str.KeySensitivity1
call fcn.00406282
mov eax, dword [0x40e744]
fld qword [eax + 0x98]
push ecx
push ecx
fstp qword [esp]
push 0x40a5a8
mov edi, str.KeySensitivity2
call fcn.00406282
mov eax, dword [0x40e744]
fld qword [eax + 0xa0]
push ecx
push ecx
fstp qword [esp]
push 0x40a5d4
mov edi, str.KeySensitivity3
call fcn.00406282
mov eax, dword [0x40e744]
fld qword [eax + 0xa8]
push ecx
push ecx
fstp qword [esp]
push 0x40a600
mov edi, str.WheelSensitivity
call fcn.00406282
pop edi
mov ecx, dword [esp + 0x110]
pop esi
pop ebx
xor ecx, esp
call fcn.00401c45
mov esp, ebp
pop ebp
ret