Function at 0x462810
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, ecx
cmp byte [edi + 0x58], 0
jne 0x462cbe
push ebx
mov ebx, dword [edi + 0xb8]
test ebx, ebx
jne 0x46284b
movsd xmm0, qword [0x4e0738]
movsd qword [edi + 0x60], xmm0
call fcn.00462710
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
jmp 0x462c83
push esi
mov esi, dword [ebx + 0x20]
mov ecx, str.total
add esi, 8
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462880
test dl, dl
je 0x46287c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462880
add eax, 2
add ecx, 2
test dl, dl
jne 0x462860
xor eax, eax
jmp 0x462885
sbb eax, eax
or eax, 1
test eax, eax
je 0x462bbc
mov ecx, str.texpack
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4628b4
test dl, dl
je 0x4628b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4628b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x462894
xor eax, eax
jmp 0x4628b9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4628e2
push str.subdef
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push eax
call fcn.00492db0
jmp 0x462bbc
mov ecx, str.texture
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462910
test dl, dl
je 0x46290c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462910
add eax, 2
add ecx, 2
test dl, dl
jne 0x4628f0
xor eax, eax
jmp 0x462915
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462940
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push 0
push eax
call fcn.00492990
jmp 0x462bbc
mov ecx, 0x4e35f0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462967
test dl, dl
je 0x462963
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462967
add eax, 2
add ecx, 2
test dl, dl
jne 0x462947
xor eax, eax
jmp 0x46296c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462995
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push eax
call fcn.004929f0
jmp 0x462bbc
mov ecx, str.bpsparam
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4629c0
test dl, dl
je 0x4629bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4629c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4629a0
xor eax, eax
jmp 0x4629c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4629ee
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push eax
call fcn.00492750
jmp 0x462bbc
mov ecx, str.cpsparam
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462a15
test dl, dl
je 0x462a11
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462a15
add eax, 2
add ecx, 2
test dl, dl
jne 0x4629f5
xor eax, eax
jmp 0x462a1a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462a43
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push eax
call fcn.004927a0
jmp 0x462bbc
mov ecx, str.psparam
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462a70
test dl, dl
je 0x462a6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462a70
add eax, 2
add ecx, 2
test dl, dl
jne 0x462a50
xor eax, eax
jmp 0x462a75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462a9e
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push eax
call fcn.004928e0
jmp 0x462bbc
mov ecx, str.bytes
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462ac5
test dl, dl
je 0x462ac1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462ac5
add eax, 2
add ecx, 2
test dl, dl
jne 0x462aa5
xor eax, eax
jmp 0x462aca
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462af5
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516328]
push 0
push eax
call fcn.00492930
jmp 0x462bbc
mov ecx, str.sound
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462b20
test dl, dl
je 0x462b1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462b20
add eax, 2
add ecx, 2
test dl, dl
jne 0x462b00
xor eax, eax
jmp 0x462b25
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462b4b
push str.file
mov ecx, ebx
call fcn.004a3f20
test eax, eax
je 0x462bbc
mov ecx, dword [0x516334]
push eax
call fcn.0049f3b0
jmp 0x462bbc
mov ecx, str.fonts
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462b72
test dl, dl
je 0x462b6e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462b72
add eax, 2
add ecx, 2
test dl, dl
jne 0x462b52
xor eax, eax
jmp 0x462b77
sbb eax, eax
or eax, 1
test eax, eax
je 0x462bbc
mov eax, str.city
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x462ba0
test cl, cl
je 0x462b9c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x462ba0
add esi, 2
add eax, 2
test cl, cl
jne 0x462b80
xor eax, eax
jmp 0x462ba5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x462bbc
mov dword [ebp - 4], eax
mov ecx, ebx
lea eax, [ebp - 4]
push eax
push str.phase
call fcn.004a5430
mov esi, dword [edi + 0xb8]
mov ecx, str.total
mov eax, dword [esi + 0x20]
add eax, 8
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x462bf0
test dl, dl
je 0x462bec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x462bf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x462bd0
xor eax, eax
jmp 0x462bf5
sbb eax, eax
or eax, 1
test eax, eax
je 0x462c5b
lea eax, [ebp - 4]
mov dword [ebp - 4], 1
push eax
push 0x4e363c
mov ecx, esi
call fcn.004a5430
mov eax, dword [ebp - 4]
add dword [edi + 0x6c], eax
movd xmm1, dword [edi + 0x6c]
movd xmm0, dword [edi + 0x68]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
movsd xmm0, qword [0x4e0738]
comisd xmm1, xmm0
movsd qword [edi + 0x60], xmm1
ja 0x462c53
xorps xmm2, xmm2
comisd xmm2, xmm1
jbe 0x462c4d
movaps xmm1, xmm2
jmp 0x462c56
comisd xmm1, xmm0
jbe 0x462c56
movaps xmm1, xmm0
movsd qword [edi + 0x60], xmm1
mov ecx, dword [edi + 0xb8]
call fcn.004a4d10
mov dword [edi + 0xb8], eax
pop esi
test eax, eax
jne 0x462c80
mov eax, dword [0x516310]
push 0
push 5
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
xorps xmm1, xmm1
movsd xmm0, qword [0x4e0738]
sub esp, 0x20
mov ecx, dword [edi + 0xbc]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x60]
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push 0x16
call fcn.0048cf70
cmp byte [edi + 0x58], 0
pop ebx
je 0x462cf8
movsd xmm1, qword [edi + 0x50]
xorps xmm2, xmm2
comisd xmm1, xmm2
jbe 0x462cf8
movss xmm0, dword [ebp + 8]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
comisd xmm2, xmm1
movsd qword [edi + 0x50], xmm1
jb 0x462cf8
mov ecx, dword [edi + 8]
push 1
push dword [edi + 0x10]
call fcn.004ae020
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
pop edi
mov esp, ebp
pop ebp
ret 8