// File: /workspace/github_cpp_makefile_star2_O3/matthewarcus[P]mmps/transform.cpp
// Function: Transform::GetTransform(char const*)
Transform* Transform::GetTransform(const char *type)
{
 Transform* transform = NULL;
  if (strcmp(type, "latlong") == 0) {
    transform = new LatLong();
  } else if (strcmp(type, "equalarea") == 0) {
    transform = new EqualArea();
  } else if (strcmp(type, "sinusoidal") == 0) {
    transform = new Sinusoidal();
  } else if (strcmp(type, "sinusoidal2") == 0) {
    transform = new Sinusoidal2();
  } else if (strcmp(type, "mollweide") == 0) {
    transform = new Mollweide();
  } else if (strcmp(type, "mercator") == 0) {
    transform = new Mercator();
  } else if (strcmp(type, "cylindrical") == 0) {
    transform = new Cylindrical();
  } else if (strcmp(type, "azimuthal") == 0) {
    transform = new Azimuthal();
  } else if (strcmp(type, "orthographic") == 0) {
    transform = new Rectilinear();
  } else if (strcmp(type, "rectilinear") == 0) {
    transform = new Rectilinear();
  } else if (strcmp(type, "stereographic") == 0) {
    transform = new Stereographic();
  } else if (strcmp(type, "gnomonic") == 0) {
    transform = new Gnomonic();
  } else if (strcmp(type, "perspective") == 0) {
    transform = new Perspective();
  } else if (strcmp(type, "bonne") == 0) {
    transform = new Bonne();
  } else if (strcmp(type, "hammer") == 0) {
    transform = new Hammer();
  }
  return transform;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x653e(%rip), %rsi      # 0xd548
callq 0x4260
testl %eax, %eax
je 0x7160
leaq 0x6532(%rip), %rsi      # 0xd550
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x71a7
leaq 0x6525(%rip), %rsi      # 0xd55a
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x71ee
leaq 0x6519(%rip), %rsi      # 0xd565
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x7235
leaq 0x650e(%rip), %rsi      # 0xd571
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x727c
leaq 0x6501(%rip), %rsi      # 0xd57b
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x72c3
leaq 0x64f3(%rip), %rsi      # 0xd584
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x7307
leaq 0x64e8(%rip), %rsi      # 0xd590
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x7357
leaq 0x64db(%rip), %rsi      # 0xd59a
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x737d
leaq 0x64d1(%rip), %rsi      # 0xd5a7
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x73a3
leaq 0x64c6(%rip), %rsi      # 0xd5b3
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x73c9
leaq 0x64bd(%rip), %rsi      # 0xd5c1
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x73f2
leaq 0x61df(%rip), %rsi      # 0xd2fa
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x741b
leaq 0x6498(%rip), %rsi      # 0xd5ca
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x7444
leaq 0x6487(%rip), %rsi      # 0xd5d0
movq %rbx, %rdi
callq 0x4260
testl %eax, %eax
je 0x746d
xorl %ebx, %ebx
jmp 0x734c
movl $0xd0, %edi
callq 0x4210
movq %rax, %rbx
movl $0xd0, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xaf3d(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xaf86(%rip), %rax      # 0x12128
jmp 0x7349
movl $0xd0, %edi
callq 0x4210
movq %rax, %rbx
movl $0xd0, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xaef6(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb05f(%rip), %rax      # 0x12248
jmp 0x7349
movl $0xd0, %edi
callq 0x4210
movq %rax, %rbx
movl $0xd0, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xaeaf(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb0a8(%rip), %rax      # 0x122d8
jmp 0x7349
movl $0xe8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xe8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xae68(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb0f1(%rip), %rax      # 0x12368
jmp 0x7349
movl $0xd8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xd8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xae21(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb13a(%rip), %rax      # 0x123f8
jmp 0x7349
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xadda(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb183(%rip), %rax      # 0x12488
jmp 0x7349
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
leaq 0xad96(%rip), %rax      # 0x120c0
movq %rax, (%rbx)
leaq 0x8(%rbx), %rdi
callq 0x5490
movq %rbx, %rdi
addq $0x58, %rdi
callq 0x5490
leaq 0xb1cf(%rip), %rax      # 0x12518
movq %rax, (%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9bb8
jmp 0x734c
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9be4
jmp 0x734c
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9be4
jmp 0x734c
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9c10
jmp 0x734c
movl $0xc8, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9c3c
jmp 0x734c
movl $0x148, %edi            # imm = 0x148
callq 0x4210
movq %rax, %rbx
movl $0x148, %edx            # imm = 0x148
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9c68
jmp 0x734c
movl $0xd0, %edi
callq 0x4210
movq %rax, %rbx
movl $0xd0, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9c94
jmp 0x734c
movl $0xc0, %edi
callq 0x4210
movq %rax, %rbx
movl $0xc0, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x40f0
movq %rbx, %rdi
callq 0x9cc0
jmp 0x734c
movq %rax, %r14
movl $0xc0, %esi
jmp 0x74e2
jmp 0x74da
movq %rax, %r14
movl $0x148, %esi            # imm = 0x148
jmp 0x74e2
jmp 0x74b8
jmp 0x74b8
jmp 0x74b8
jmp 0x74b8
jmp 0x74b8
jmp 0x74b8
movq %rax, %r14
movl $0xc8, %esi
jmp 0x74e2
movq %rax, %r14
movl $0xd8, %esi
jmp 0x74e2
movq %rax, %r14
movl $0xe8, %esi
jmp 0x74e2
jmp 0x74da
jmp 0x74da
movq %rax, %r14
movl $0xd0, %esi
movq %rbx, %rdi
callq 0x4220
movq %r14, %rdi
callq 0x4330