// File: pehublove[P]GPS-neo7n-forBaiduMap/gpsBaidu.cpp
// Function: GpsBaidu::transformLat(double, double)
double GpsBaidu::transformLat(double x, double y)
{
	double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * sqrt(abs(x));
	ret += (20.0 * sin(6.0 * x * pi) + 20.0 * sin(2.0 * x * pi)) * 2.0 / 3.0;
	ret += (20.0 * sin(y * pi) + 40.0 * sin(y / 3.0 * pi)) * 2.0 / 3.0;
	ret += (160.0 * sin(y / 12.0 * pi) + 320 * sin(y * pi / 30.0)) * 2.0 / 3.0;
	return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movsd %xmm0, -0x8(%rbp)
movsd %xmm1, -0x10(%rbp)
movsd -0x8(%rbp), %xmm1
addsd %xmm1, %xmm1
movsd 0xd75(%rip), %xmm0      # 0x5248
addsd %xmm0, %xmm1
movsd -0x10(%rbp), %xmm0
movsd 0xd04(%rip), %xmm2      # 0x51e8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0xd44(%rip), %xmm1      # 0x5238
mulsd -0x10(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0xd32(%rip), %xmm0      # 0x5240
mulsd -0x8(%rbp), %xmm0
movsd -0x10(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x8(%rbp), %xmm0
callq 0x4c50
callq 0x21a0
movsd -0x38(%rbp), %xmm1
movsd 0xcf7(%rip), %xmm2      # 0x5238
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd 0xcda(%rip), %xmm0      # 0x5230
mulsd -0x8(%rbp), %xmm0
movsd 0xcad(%rip), %xmm1      # 0x5210
mulsd %xmm1, %xmm0
callq 0x2070
movsd %xmm0, -0x30(%rbp)
movsd 0xc77(%rip), %xmm0      # 0x51f0
mulsd -0x8(%rbp), %xmm0
movsd 0xc8a(%rip), %xmm1      # 0x5210
mulsd %xmm1, %xmm0
callq 0x2070
movaps %xmm0, %xmm2
movsd -0x30(%rbp), %xmm0
movsd 0xc81(%rip), %xmm1      # 0x5220
mulsd %xmm2, %xmm1
movsd 0xc75(%rip), %xmm2      # 0x5220
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0xc35(%rip), %xmm1      # 0x51f0
mulsd %xmm1, %xmm0
movsd 0xc21(%rip), %xmm1      # 0x51e8
divsd %xmm1, %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd 0xc33(%rip), %xmm0      # 0x5210
mulsd -0x10(%rbp), %xmm0
callq 0x2070
movsd %xmm0, -0x28(%rbp)
movsd -0x10(%rbp), %xmm0
movsd 0xbef(%rip), %xmm1      # 0x51e8
divsd %xmm1, %xmm0
movsd 0xc0b(%rip), %xmm1      # 0x5210
mulsd %xmm1, %xmm0
callq 0x2070
movaps %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
movsd 0xc0a(%rip), %xmm1      # 0x5228
mulsd %xmm2, %xmm1
movsd 0xbf6(%rip), %xmm2      # 0x5220
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0xbb6(%rip), %xmm1      # 0x51f0
mulsd %xmm1, %xmm0
movsd 0xba2(%rip), %xmm1      # 0x51e8
divsd %xmm1, %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
movsd 0xbb7(%rip), %xmm1      # 0x5218
divsd %xmm1, %xmm0
movsd 0xba3(%rip), %xmm1      # 0x5210
mulsd %xmm1, %xmm0
callq 0x2070
movsd %xmm0, -0x20(%rbp)
movsd 0xb8d(%rip), %xmm0      # 0x5210
mulsd -0x10(%rbp), %xmm0
movsd 0xb78(%rip), %xmm1      # 0x5208
divsd %xmm1, %xmm0
callq 0x2070
movaps %xmm0, %xmm2
movsd -0x20(%rbp), %xmm0
movsd 0xb57(%rip), %xmm1      # 0x5200
mulsd %xmm2, %xmm1
movsd 0xb43(%rip), %xmm2      # 0x51f8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0xb2b(%rip), %xmm1      # 0x51f0
mulsd %xmm1, %xmm0
movsd 0xb17(%rip), %xmm1      # 0x51e8
divsd %xmm1, %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)