Function at 0x4630f0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, ecx
cmp byte [edi + 0x58], 0
jne 0x46359e
push ebx
mov ebx, dword [edi + 0xb8]
test ebx, ebx
jne 0x46312b
movsd xmm0, qword [0x4e3758]
movsd qword [edi + 0x60], xmm0
call fcn.00462ff0
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
jmp 0x463563
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 0x463160
test dl, dl
je 0x46315c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463160
add eax, 2
add ecx, 2
test dl, dl
jne 0x463140
xor eax, eax
jmp 0x463165
sbb eax, eax
or eax, 1
test eax, eax
je 0x46349c
mov ecx, str.texpack
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x463194
test dl, dl
je 0x463190
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463194
add eax, 2
add ecx, 2
test dl, dl
jne 0x463174
xor eax, eax
jmp 0x463199
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4631c2
push str.subdef
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push eax
call fcn.00495a40
jmp 0x46349c
mov ecx, str.texture
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4631f0
test dl, dl
je 0x4631ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4631f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4631d0
xor eax, eax
jmp 0x4631f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x463220
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push 0
push eax
call fcn.00495620
jmp 0x46349c
mov ecx, 0x4e65e0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x463247
test dl, dl
je 0x463243
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463247
add eax, 2
add ecx, 2
test dl, dl
jne 0x463227
xor eax, eax
jmp 0x46324c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x463275
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push eax
call fcn.00495680
jmp 0x46349c
mov ecx, str.bpsparam
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4632a0
test dl, dl
je 0x46329c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4632a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x463280
xor eax, eax
jmp 0x4632a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4632ce
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push eax
call fcn.004953e0
jmp 0x46349c
mov ecx, str.cpsparam
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4632f5
test dl, dl
je 0x4632f1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4632f5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4632d5
xor eax, eax
jmp 0x4632fa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x463323
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push eax
call fcn.00495430
jmp 0x46349c
mov ecx, str.psparam
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x463350
test dl, dl
je 0x46334c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463350
add eax, 2
add ecx, 2
test dl, dl
jne 0x463330
xor eax, eax
jmp 0x463355
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46337e
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push eax
call fcn.00495570
jmp 0x46349c
mov ecx, str.bytes
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4633a5
test dl, dl
je 0x4633a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4633a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x463385
xor eax, eax
jmp 0x4633aa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4633d5
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3c8]
push 0
push eax
call fcn.004955c0
jmp 0x46349c
mov ecx, str.sound
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x463400
test dl, dl
je 0x4633fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463400
add eax, 2
add ecx, 2
test dl, dl
jne 0x4633e0
xor eax, eax
jmp 0x463405
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46342b
push str.file
mov ecx, ebx
call fcn.004a6be0
test eax, eax
je 0x46349c
mov ecx, dword [0x51a3d4]
push eax
call fcn.004a1fe0
jmp 0x46349c
mov ecx, str.fonts
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x463452
test dl, dl
je 0x46344e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x463452
add eax, 2
add ecx, 2
test dl, dl
jne 0x463432
xor eax, eax
jmp 0x463457
sbb eax, eax
or eax, 1
test eax, eax
je 0x46349c
mov eax, str.city
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x463480
test cl, cl
je 0x46347c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x463480
add esi, 2
add eax, 2
test cl, cl
jne 0x463460
xor eax, eax
jmp 0x463485
sbb eax, eax
or eax, 1
test eax, eax
jne 0x46349c
mov dword [ebp - 4], eax
mov ecx, ebx
lea eax, [ebp - 4]
push eax
push str.phase
call fcn.004a80f0
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 0x4634d0
test dl, dl
je 0x4634cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4634d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4634b0
xor eax, eax
jmp 0x4634d5
sbb eax, eax
or eax, 1
test eax, eax
je 0x46353b
lea eax, [ebp - 4]
mov dword [ebp - 4], 1
push eax
push 0x4e662c
mov ecx, esi
call fcn.004a80f0
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 [0x4e3758]
comisd xmm1, xmm0
movsd qword [edi + 0x60], xmm1
ja 0x463533
xorps xmm2, xmm2
comisd xmm2, xmm1
jbe 0x46352d
movaps xmm1, xmm2
jmp 0x463536
comisd xmm1, xmm0
jbe 0x463536
movaps xmm1, xmm0
movsd qword [edi + 0x60], xmm1
mov ecx, dword [edi + 0xb8]
call fcn.004a79d0
mov dword [edi + 0xb8], eax
pop esi
test eax, eax
jne 0x463560
mov eax, dword [0x51a3b0]
push 0
push 5
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
xorps xmm1, xmm1
movsd xmm0, qword [0x4e3758]
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.0048fb30
cmp byte [edi + 0x58], 0
pop ebx
je 0x4635d8
movsd xmm1, qword [edi + 0x50]
xorps xmm2, xmm2
comisd xmm1, xmm2
jbe 0x4635d8
movss xmm0, dword [ebp + 8]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
comisd xmm2, xmm1
movsd qword [edi + 0x50], xmm1
jb 0x4635d8
mov ecx, dword [edi + 8]
push 1
push dword [edi + 0x10]
call fcn.004b0e80
xorps xmm1, xmm1
movsd qword [edi + 0x50], xmm1
pop edi
mov esp, ebp
pop ebp
ret 8