// File: /workspace/github_c_makefile_star2_O0/rpeepz[P]ft_ssl/srcs/hash/md5.c
// Function: md5_loop
static void		md5_loop(int i, t_md5 *b)
{
	if (i >= 0 && i < 16)
	{
		b->bit = (b->b & b->c) | ((~b->b) & b->d);
		b->mod = i;
	}
	else if (i >= 16 && i < 32)
	{
		b->bit = (b->d & b->b) | ((~b->d) & b->c);
		b->mod = ((5 * i) + 1) % 16;
	}
	else if (i >= 32 && i < 48)
	{
		b->bit = b->b ^ b->c ^ b->d;
		b->mod = ((3 * i) + 5) % 16;
	}
	else
	{
		b->bit = b->c ^ (b->b | (~b->d));
		b->mod = (7 * i) % 16;
	}
	b->bit = b->bit + b->a + g_md5_k[i] + *((unsigned int *)b->table[b->mod]);
	b->a = b->d;
	b->d = b->c;
	b->c = b->b;
	b->b = b->b + ((b->bit << g_md5_s[i]) | (b->bit >> (32 - g_md5_s[i])));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x0, -0x4(%rbp)
jl 0x560e
cmpl $0x10, -0x4(%rbp)
jge 0x560e
movq -0x10(%rbp), %rax
movl 0x18(%rax), %ecx
movq -0x10(%rbp), %rax
andl 0x1c(%rax), %ecx
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
xorl $-0x1, %eax
movq -0x10(%rbp), %rdx
andl 0x20(%rdx), %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
movl -0x4(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x28(%rax)
jmp 0x56d4
cmpl $0x10, -0x4(%rbp)
jl 0x565a
cmpl $0x20, -0x4(%rbp)
jge 0x565a
movq -0x10(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x10(%rbp), %rax
andl 0x18(%rax), %ecx
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
xorl $-0x1, %eax
movq -0x10(%rbp), %rdx
andl 0x1c(%rdx), %eax
orl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
imull $0x5, -0x4(%rbp), %eax
addl $0x1, %eax
movl $0x10, %ecx
cltd
idivl %ecx
movq -0x10(%rbp), %rax
movl %edx, 0x28(%rax)
jmp 0x56d2
cmpl $0x20, -0x4(%rbp)
jl 0x569a
cmpl $0x30, -0x4(%rbp)
jge 0x569a
movq -0x10(%rbp), %rax
movl 0x18(%rax), %ecx
movq -0x10(%rbp), %rax
xorl 0x1c(%rax), %ecx
movq -0x10(%rbp), %rax
xorl 0x20(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
imull $0x3, -0x4(%rbp), %eax
addl $0x5, %eax
movl $0x10, %ecx
cltd
idivl %ecx
movq -0x10(%rbp), %rax
movl %edx, 0x28(%rax)
jmp 0x56d0
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x10(%rbp), %rdx
movl 0x20(%rdx), %edx
xorl $-0x1, %edx
orl %edx, %eax
xorl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
imull $0x7, -0x4(%rbp), %eax
movl $0x10, %ecx
cltd
idivl %ecx
movq -0x10(%rbp), %rax
movl %edx, 0x28(%rax)
jmp 0x56d2
jmp 0x56d4
movq -0x10(%rbp), %rax
movl 0x24(%rax), %ecx
movq -0x10(%rbp), %rax
addl 0x14(%rax), %ecx
movslq -0x4(%rbp), %rdx
leaq 0x12bc3(%rip), %rax     # 0x182b0
addl (%rax,%rdx,4), %ecx
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rdx
movl 0x28(%rdx), %edx
addl 0x38(%rax,%rdx,4), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x24(%rax), %eax
movslq -0x4(%rbp), %rdx
leaq 0x12a64(%rip), %rcx     # 0x181b0
movl (%rcx,%rdx,4), %ecx
shll %cl, %eax
movq -0x10(%rbp), %rcx
movl 0x24(%rcx), %edx
movslq -0x4(%rbp), %rdi
movl $0x20, %ecx
leaq 0x12a48(%rip), %rsi     # 0x181b0
subl (%rsi,%rdi,4), %ecx
shrl %cl, %edx
movl -0x14(%rbp), %ecx
orl %edx, %eax
addl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
popq %rbp
retq
nopl (%rax)