pub const INT_TO_STR: &str = "
int_to_str:
push rbp
mov rbp, rsp
lea r8, int_to_str_val
mov dword [rbp-36], edi
mov dword [rbp-4], 0
mov dword [rbp-8], 0
cmp dword [rbp-36], 0
jne .L2
mov eax, dword [rbp-4]
lea edx, [rax+1]
mov dword [rbp-4], edx
cdqe
mov byte [r8 + rax], 48
mov eax, dword [rbp-4]
cdqe
mov byte [r8 + rax], 0
jmp .L1
.L2:
cmp dword [rbp-36], 0
jns .L5
mov dword [rbp-8], 1
neg dword [rbp-36]
jmp .L5
.L8:
mov edx, dword [rbp-36]
movsx rax, edx
imul rax, rax, 1717986919
shr rax, 32
mov ecx, eax
sar ecx, 2
mov eax, edx
sar eax, 31
sub ecx, eax
mov eax, ecx
sal eax, 2
add eax, ecx
add eax, eax
sub edx, eax
mov dword [rbp-24], edx
cmp dword [rbp-24], 9
jle .L6
mov eax, dword [rbp-24]
add eax, 87
mov ecx, eax
jmp .L7
.L6:
mov eax, dword [rbp-24]
add eax, 48
mov ecx, eax
.L7:
mov eax, dword [rbp-4]
lea edx, [rax+1]
mov dword [rbp-4], edx
cdqe
mov byte [r8 + rax], cl
mov eax, dword [rbp-36]
movsx rdx, eax
imul rdx, rdx, 1717986919
shr rdx, 32
mov ecx, edx
sar ecx, 2
cdq
mov eax, ecx
sub eax, edx
mov dword [rbp-36], eax
.L5:
cmp dword [rbp-36], 0
jne .L8
cmp dword [rbp-8], 0
je .L9
mov eax, dword [rbp-4]
lea edx, [rax+1]
mov dword [rbp-4], edx
cdqe
mov byte [r8 + rax], 45
.L9:
mov eax, dword [rbp-4]
cdqe
mov byte [r8 + rax], 0
mov dword [rbp-12], 0
mov eax, dword [rbp-4]
sub eax, 1
mov dword [rbp-16], eax
jmp .L10
.L11:
mov eax, dword [rbp-12]
cdqe
movzx eax, byte [r8 + rax]
mov byte [rbp-17], al
mov eax, dword [rbp-16]
cdqe
movzx edx, byte [r8 + rax]
mov eax, dword [rbp-12]
cdqe
mov byte [r8 + rax], dl
mov eax, dword [rbp-16]
cdqe
movzx edx, byte [rbp-17]
mov byte [r8 + rax], dl
add dword [rbp-12], 1
sub dword [rbp-16], 1
.L10:
mov eax, dword [rbp-12]
cmp eax, dword [rbp-16]
jl .L11
.L1:
pop rbp
lea rax, int_to_str_val
ret";