// File: /workspace/github_cpp_makefile_star2_O3/eschwabe[P]interview-practice/src/convert.cpp
// Function: main
int main()
{
    cout << StringToInt("-100") << endl;
    cout << StringToInt("101") << endl;
    cout << StringToInt("3") << endl;
    cout << StringToInt("32340357") << endl;
    cout << StringToInt("0") << endl;
    cout << StringToInt("-1") << endl;

    cout << IntToString(100) << endl;
    cout << IntToString(-101) << endl;
    cout << IntToString(1287234) << endl;
    cout << IntToString(-19467) << endl;
    cout << IntToString(0) << endl;
    cout << IntToString(-1) << endl;
    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcc6(%rip), %rsi       # 0x2004
leaq 0xcc3(%rip), %rdx       # 0x2008
movq %rsp, %rdi
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x1380
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x1369
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x2c48(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x13d5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xc27(%rip), %rsi       # 0x2009
leaq 0xc23(%rip), %rdx       # 0x200c
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x1421
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x140a
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x2ba7(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1476
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xb8a(%rip), %rsi       # 0x200d
leaq 0xb84(%rip), %rdx       # 0x200e
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x14c2
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x14ab
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x2b06(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1517
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xaeb(%rip), %rsi       # 0x200f
leaq 0xaec(%rip), %rdx       # 0x2017
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x1563
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x154c
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x2a65(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x15b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0xa42(%rip), %rsi       # 0x2007
leaq 0xa3c(%rip), %rdx       # 0x2008
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x1604
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x15ed
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x29c4(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1659
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x9b2(%rip), %rsi       # 0x2018
leaq 0x9ad(%rip), %rdx       # 0x201a
callq 0x19c0
movq (%rsp), %rcx
movq 0x8(%rsp), %rdx
movb (%rcx), %al
xorl %esi, %esi
cmpb $0x2d, %al
sete %sil
xorl %edi, %edi
cmpq %rsi, %rdx
jbe 0x16a5
xorl %edi, %edi
leal (%rdi,%rdi,4), %edi
movsbl (%rcx,%rsi), %r8d
leal (%r8,%rdi,2), %edi
addl $-0x30, %edi
incq %rsi
cmpq %rsi, %rdx
jne 0x168e
movl %edi, %esi
negl %esi
cmpb $0x2d, %al
cmovnel %edi, %esi
movq 0x2923(%rip), %rdi      # 0x3fd8
callq 0x10c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x16fa
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0x64, (%rsi)
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x28ba(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1763
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0xffffff9b, (%rsi)     # imm = 0xFFFFFF9B
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x2851(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x17cc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0x13a442, (%rsi)       # imm = 0x13A442
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x27e8(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1835
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0xffffb3f5, (%rsi)     # imm = 0xFFFFB3F5
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x277f(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x189e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0x0, (%rsi)
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x2716(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1907
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
leaq 0x24(%rsp), %rsi
movl $0xffffffff, (%rsi)     # imm = 0xFFFFFFFF
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x1269
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x26ad(%rip), %rdi      # 0x3fd8
callq 0x10a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x1080
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1040
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1970
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
jmp 0x1984
jmp 0x1984
jmp 0x1984
jmp 0x1984
jmp 0x1984
movq %rax, %rbx
jmp 0x19b8
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
jmp 0x199f
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x19b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1090
movq %rbx, %rdi
callq 0x10d0