Function at 0x4215f0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push esi
mov esi, dword [ebp + 8]
movaps xmm0, xmm2
movsd qword [ebp - 0xc], xmm0
mov dword [ebp - 4], edx
push edi
mov edi, ecx
cmp esi, 1
jge 0x421627
movq xmm0, qword [str.undef]
movq qword [edi], xmm0
mov eax, dword [0x5209d4]
mov dword [edi + 8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x34]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_modf]
movsd xmm0, qword [ebp - 0xc]
add esp, 0xc
andps xmm0, xmmword [0x52a350]
fstp qword [ebp - 0x14]
movsd qword [ebp - 0x24], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_log10_precise
movaps xmm2, xmm0
xorps xmm1, xmm1
comisd xmm2, xmm1
movsd qword [ebp - 0x1c], xmm2
ja 0x42166e
xorps xmm2, xmm2
movsd qword [ebp - 0x1c], xmm2
cvttsd2si ecx, xmm2
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm2, xmm0
lahf
test ah, 0x44
jp 0x421689
lea eax, [ecx + 1]
jmp 0x4216a5
fld qword [ebp - 0x1c]
sub esp, 8
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [ebp - 0x1c]
cvttsd2si eax, qword [ebp - 0x1c]
add esp, 8
xorps xmm1, xmm1
movsd xmm0, qword [ebp - 0x14]
cmp eax, 5
jle 0x4216c3
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4216c3
mov eax, 6
cmp esi, eax
cmovl esi, eax
movsd xmm0, qword [0x52a138]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
movsd xmm1, qword [0x52a108]
divsd xmm1, xmm0
movsd qword [ebp - 0x1c], xmm0
movsd xmm0, qword [ebp - 0x24]
comisd xmm0, xmm1
jb 0x421719
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
movsd xmm0, qword [ebp - 0x1c]
add esp, 8
fstp qword [ebp - 0x2c]
comisd xmm0, xmmword [ebp - 0x2c]
ja 0x421770
movsd xmm0, qword [ebp - 0x24]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x421773
movsd xmm0, qword [ebp - 0xc]
sub esp, 8
movsd qword [esp], xmm0
push esi
push str.__.G
push dword [ebp - 4]
push edi
call fcn.0041fd00
add esp, 0x18
mov ecx, edi
call fcn.0040e9c0
mov edx, eax
sub edi, eax
movzx ecx, word [edx]
lea edx, [edx + 2]
mov word [edi + edx - 2], cx
test cx, cx
jne 0x421750
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xorps xmm1, xmm1
movsd xmm0, qword [ebp - 0x34]
xor eax, eax
comisd xmm0, xmm1
mov edx, 0x5209d8
jbe 0x421797
movsd xmm0, qword [ebp - 0xc]
call fcn.004214c0
xorps xmm1, xmm1
mov edx, 0x5209d8
mov ecx, esi
sub ecx, eax
jne 0x4217b3
movsd xmm0, qword [ebp - 0x14]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4217f4
mov edx, str.__.G
jmp 0x4217f4
test eax, eax
jne 0x4217f2
movsd xmm0, qword [ebp - 0x14]
or eax, 0xffffffff
comisd xmm0, xmm1
jbe 0x4217f4
movsd xmm2, qword [0x52a108]
movsd xmm3, qword [0x52a138]
comisd xmm2, xmm0
jbe 0x4217e6
mulsd xmm0, xmm3
inc eax
comisd xmm0, xmm1
ja 0x4217d5
test eax, eax
jle 0x4217f4
cmp eax, esi
jge 0x4217f4
add esi, eax
jmp 0x4217f4
mov esi, ecx
movsd xmm0, qword [ebp - 0xc]
sub esp, 8
movsd qword [esp], xmm0
push esi
push edx
push dword [ebp - 4]
push edi
call fcn.0041fd00
add esp, 0x18
test esi, esi
jle 0x421745
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421820
sub ecx, edx
lea esi, [edi - 2]
sar ecx, 1
cmp word [esi + ecx*2], 0x30
lea esi, [esi + ecx*2]
jne 0x42184e
nop dword [eax]
xor eax, eax
mov word [esi], ax
sub esi, 2
cmp word [esi], 0x30
je 0x421840
push 4
lea eax, [ebp + 8]
push eax
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, 0x5209f0
lea eax, [ebp + 8]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421896
test dx, dx
je 0x421892
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421896
add eax, 4
add ecx, 4
test dx, dx
jne 0x421870
xor eax, eax
jmp 0x42189b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4218a5
cmp word [esi], 0x2c
je 0x4218ed
mov ecx, 0x5207e0
lea eax, [ebp + 8]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4218d6
test dx, dx
je 0x4218d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4218d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4218b0
xor eax, eax
jmp 0x4218db
sbb eax, eax
or eax, 1
test eax, eax
jne 0x421745
cmp word [esi], 0x2e
jne 0x421745
mov dword [esi + 2], 0x30
jmp 0x421745