// File: /workspace/github_c_makefile_star2_O2/AndreIglesias[P]quick_ls/libft/libstd/depo/.././src//c/stdio/ft_printf/aux/print_address.c
// Function: print_address
int	print_address(unsigned long p, t_flags flags, int size, int npre)
{
	int	i;
	int	nb;
	int	z;

	i = (sizeof(p) << 3) - 20;
	size = a_size(i, p, &z);
	nb = write(flags.fd, " ", 1 * (flags.space && size));
	if (!flags.minus && (!(flags.zero && !flags.precision) || !size))
		nb += ft_width(flags, size, npre);
	nb += write(flags.fd, "+", 1 * (flags.plus && size));
	if (size)
		nb += write(flags.fd, "0x", 2);
	if (!flags.minus && (flags.zero && !flags.precision) && size)
		nb += ft_zero(flags, size);
	if (size)
		nb += ft_repet_fd('0', flags.precision - size, flags.fd);
	while (size && i >= 0)
	{
		if (z-- <= 0)
			nb += ft_putchar_fd(hex_digit((p >> i) & 0xf), flags.fd);
		i -= 4;
	}
	if (flags.minus)
		nb += ft_width(flags, size, npre);
	return (nb);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %edx, %r13d
movq %rdi, %r14
leaq 0x90(%rsp), %rbx
pushq $0x2c
popq %r15
leaq 0x4c(%rsp), %rdx
movl %r15d, %edi
movq %r14, %rsi
callq 0x417c
movl %eax, %ebp
movl 0x10(%rbx), %eax
movl 0x38(%rbx), %r12d
movq %rax, 0x50(%rsp)
testl %eax, %eax
setne %al
testl %ebp, %ebp
setne %cl
andb %al, %cl
movzbl %cl, %edx
leaq 0xf31(%rip), %rsi       # 0x5289
movl %r12d, %edi
callq 0x1060
movq %rbx, %rsi
movq %rax, %rbx
movl 0xc(%rsi), %eax
movl %eax, 0x40(%rsp)
testl %eax, %eax
movl %r13d, 0x48(%rsp)
jne 0x43c7
testl %ebp, %ebp
setne %al
cmpl $0x0, 0x4(%rsi)
setne %cl
cmpl $0x0, 0x18(%rsi)
sete %dl
andb %al, %cl
testb %dl, %cl
jne 0x43c7
movups (%rsi), %xmm0
movups 0x10(%rsi), %xmm1
movups 0x20(%rsi), %xmm2
movups 0x2c(%rsi), %xmm3
movups %xmm3, 0x2c(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movl %ebp, %edi
movl %r13d, %esi
callq 0x41cd
leaq 0x90(%rsp), %rsi
addl %ebx, %eax
movl %eax, %ebx
testl %ebp, %ebp
setne %al
movl 0x8(%rsi), %ecx
movl %ecx, 0x44(%rsp)
testl %ecx, %ecx
setne %cl
andb %al, %cl
movzbl %cl, %edx
leaq 0xfa3(%rip), %rsi       # 0x5387
movl %r12d, %edi
callq 0x1060
movq %rax, %r13
addl %ebx, %r13d
testl %ebp, %ebp
je 0x440b
leaq 0xfd2(%rip), %rsi       # 0x53cf
pushq $0x2
popq %rdx
movl %r12d, %edi
callq 0x1060
addl %eax, %r13d
testl %ebp, %ebp
setne %al
leaq 0x90(%rsp), %rsi
cmpl $0x0, 0x4(%rsi)
movl 0x18(%rsi), %ebx
setne %cl
movl 0x40(%rsp), %edx
orl %ebx, %edx
sete %dl
andb %al, %cl
andb %dl, %cl
cmpb $0x1, %cl
jne 0x4464
movl 0x14(%rsi), %eax
xorl %ecx, %ecx
testl %ebp, %ebp
cmovgl %ebp, %ecx
movq 0x50(%rsp), %rdx
addl 0x44(%rsp), %edx
addl %ecx, %edx
negl %edx
leal (%rax,%rdx), %esi
addl $-0x2, %esi
pushq $0x30
popq %rdi
movl %r12d, %edx
callq 0x45b0
addl %r13d, %eax
movl %eax, %r13d
jmp 0x4468
testl %ebp, %ebp
je 0x447d
subl %ebp, %ebx
pushq $0x30
popq %rdi
movl %ebx, %esi
movl %r12d, %edx
callq 0x45b0
addl %r13d, %eax
movl %eax, %r13d
movl 0x4c(%rsp), %ebx
leaq 0x90(%rsp), %rcx
testl %ebp, %ebp
je 0x44d2
testl %r15d, %r15d
js 0x44d2
testl %ebx, %ebx
jg 0x44ca
movq %r14, %rax
movl %r15d, %ecx
shrq %cl, %rax
andl $0xf, %eax
leal 0x30(%rax), %ecx
leal 0x57(%rax), %edx
cmpl $0xa, %eax
movzbl %cl, %eax
movzbl %dl, %ecx
cmovbl %eax, %ecx
movzbl %cl, %edi
movl %r12d, %esi
callq 0x4548
leaq 0x90(%rsp), %rcx
addl %eax, %r13d
addl $-0x4, %r15d
decl %ebx
jmp 0x4489
cmpl $0x0, 0x40(%rsp)
je 0x450c
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups 0x2c(%rcx), %xmm3
movups %xmm3, 0x2c(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movl %ebp, %edi
movl 0x48(%rsp), %esi
callq 0x41cd
addl %r13d, %eax
movl %eax, %r13d
movl %r13d, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop