Function at 0x461410
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, ecx
cmp byte [edi + 0x58], 0
jne 0x4618be
push ebx
mov ebx, dword [edi + 0xb8]
test ebx, ebx
jne 0x46144b
movsd xmm0, qword [0x4cc6d8]
movsd qword [edi + 0x60], xmm0
call fcn.00461310
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
jmp 0x461883
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 0x461480
test dl, dl
je 0x46147c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461480
add eax, 2
add ecx, 2
test dl, dl
jne 0x461460
xor eax, eax
jmp 0x461485
sbb eax, eax
or eax, 1
test eax, eax
je 0x4617bc
mov ecx, str.texpack
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4614b4
test dl, dl
je 0x4614b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4614b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x461494
xor eax, eax
jmp 0x4614b9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4614e2
push str.subdef
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push eax
call fcn.00488c50
jmp 0x4617bc
mov ecx, str.texture
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461510
test dl, dl
je 0x46150c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461510
add eax, 2
add ecx, 2
test dl, dl
jne 0x4614f0
xor eax, eax
jmp 0x461515
sbb eax, eax
or eax, 1
test eax, eax
jne 0x461540
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push 0
push eax
call fcn.00488820
jmp 0x4617bc
mov ecx, 0x4cf180
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461567
test dl, dl
je 0x461563
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461567
add eax, 2
add ecx, 2
test dl, dl
jne 0x461547
xor eax, eax
jmp 0x46156c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x461595
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push eax
call fcn.00488880
jmp 0x4617bc
mov ecx, str.bpsparam
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4615c0
test dl, dl
je 0x4615bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4615c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4615a0
xor eax, eax
jmp 0x4615c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4615ee
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push eax
call fcn.004885e0
jmp 0x4617bc
mov ecx, str.cpsparam
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461615
test dl, dl
je 0x461611
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461615
add eax, 2
add ecx, 2
test dl, dl
jne 0x4615f5
xor eax, eax
jmp 0x46161a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x461643
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push eax
call fcn.00488630
jmp 0x4617bc
mov ecx, str.psparam
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461670
test dl, dl
je 0x46166c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461670
add eax, 2
add ecx, 2
test dl, dl
jne 0x461650
xor eax, eax
jmp 0x461675
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46169e
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push eax
call fcn.00488770
jmp 0x4617bc
mov ecx, str.bytes
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4616c5
test dl, dl
je 0x4616c1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4616c5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4616a5
xor eax, eax
jmp 0x4616ca
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4616f5
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec38]
push 0
push eax
call fcn.004887c0
jmp 0x4617bc
mov ecx, str.sound
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461720
test dl, dl
je 0x46171c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461720
add eax, 2
add ecx, 2
test dl, dl
jne 0x461700
xor eax, eax
jmp 0x461725
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46174b
push str.file
mov ecx, ebx
call fcn.00498b30
test eax, eax
je 0x4617bc
mov ecx, dword [0x4fec44]
push eax
call fcn.00494ac0
jmp 0x4617bc
mov ecx, str.fonts
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x461772
test dl, dl
je 0x46176e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x461772
add eax, 2
add ecx, 2
test dl, dl
jne 0x461752
xor eax, eax
jmp 0x461777
sbb eax, eax
or eax, 1
test eax, eax
je 0x4617bc
mov eax, str.city
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x4617a0
test cl, cl
je 0x46179c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x4617a0
add esi, 2
add eax, 2
test cl, cl
jne 0x461780
xor eax, eax
jmp 0x4617a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4617bc
mov dword [ebp - 4], eax
mov ecx, ebx
lea eax, [ebp - 4]
push eax
push str.phase
call fcn.0049a040
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 0x4617f0
test dl, dl
je 0x4617ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4617f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4617d0
xor eax, eax
jmp 0x4617f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x46185b
lea eax, [ebp - 4]
mov dword [ebp - 4], 1
push eax
push 0x4cf1cc
mov ecx, esi
call fcn.0049a040
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 [0x4cc6d8]
comisd xmm1, xmm0
movsd qword [edi + 0x60], xmm1
ja 0x461853
xorps xmm2, xmm2
comisd xmm2, xmm1
jbe 0x46184d
movaps xmm1, xmm2
jmp 0x461856
comisd xmm1, xmm0
jbe 0x461856
movaps xmm1, xmm0
movsd qword [edi + 0x60], xmm1
mov ecx, dword [edi + 0xb8]
call fcn.00499920
mov dword [edi + 0xb8], eax
pop esi
test eax, eax
jne 0x461880
mov eax, dword [0x4fec20]
push 0
push 5
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
xorps xmm1, xmm1
movsd xmm0, qword [0x4cc6d8]
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.00483210
cmp byte [edi + 0x58], 0
pop ebx
je 0x4618f8
movsd xmm1, qword [edi + 0x50]
xorps xmm2, xmm2
comisd xmm1, xmm2
jbe 0x4618f8
movss xmm0, dword [ebp + 8]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
comisd xmm2, xmm1
movsd qword [edi + 0x50], xmm1
jb 0x4618f8
mov ecx, dword [edi + 8]
push 1
push dword [edi + 0x10]
call fcn.004a2a20
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
pop edi
mov esp, ebp
pop ebp
ret 8