// File: /workspace/github_cpp_makefile_star2_O3/t0mm4rx[P]piscine_cpp/day01/ex02/ZombieEvent.cpp
// Function: ZombieEvent::randomChump()
Zombie *ZombieEvent::randomChump(void)
{
	std::string names[] = {"Gabrielle", "Charlie", "Aimée", "Jacqueline", "Adele", "Marie", "Harris", "Jessie", "Calvin", "John", "Jordan"};

	if (this->type == "")
		this->type = "NoType";
	return (this->newZombie(names[rand() % 11]));
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rdi, %r14
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1a20(%rip), %rsi      # 0x303d
leaq 0x1a22(%rip), %rdx      # 0x3046
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x1932
leaq 0x40(%rsp), %r15
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1a01(%rip), %rsi      # 0x3047
leaq 0x1a01(%rip), %rdx      # 0x304e
movq %r15, %rdi
callq 0x1932
leaq 0x60(%rsp), %r15
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19e5(%rip), %rsi      # 0x304f
leaq 0x19e4(%rip), %rdx      # 0x3055
movq %r15, %rdi
callq 0x1932
leaq 0x80(%rsp), %r15
leaq 0x90(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19c2(%rip), %rsi      # 0x3056
leaq 0x19c5(%rip), %rdx      # 0x3060
movq %r15, %rdi
callq 0x1932
leaq 0xa0(%rsp), %r15
leaq 0xb0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19a3(%rip), %rsi      # 0x3061
leaq 0x19a1(%rip), %rdx      # 0x3066
movq %r15, %rdi
callq 0x1932
leaq 0xc0(%rsp), %r15
leaq 0xd0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x197f(%rip), %rsi      # 0x3067
leaq 0x197d(%rip), %rdx      # 0x306c
movq %r15, %rdi
callq 0x1932
leaq 0xe0(%rsp), %r15
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x195b(%rip), %rsi      # 0x306d
leaq 0x195a(%rip), %rdx      # 0x3073
movq %r15, %rdi
callq 0x1932
leaq 0x100(%rsp), %r15
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1938(%rip), %rsi      # 0x3074
leaq 0x1937(%rip), %rdx      # 0x307a
movq %r15, %rdi
callq 0x1932
leaq 0x120(%rsp), %r15
leaq 0x130(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1915(%rip), %rsi      # 0x307b
leaq 0x1914(%rip), %rdx      # 0x3081
movq %r15, %rdi
callq 0x1932
leaq 0x140(%rsp), %r15
leaq 0x150(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18f2(%rip), %rsi      # 0x3082
leaq 0x18ef(%rip), %rdx      # 0x3086
movq %r15, %rdi
callq 0x1932
leaq 0x160(%rsp), %r15
leaq 0x170(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x18cc(%rip), %rsi      # 0x3087
leaq 0x18cb(%rip), %rdx      # 0x308d
movq %r15, %rdi
callq 0x1932
leaq 0x183b(%rip), %rsi      # 0x300c
movq %r14, %rdi
callq 0x1050
testl %eax, %eax
jne 0x17f8
movq 0x8(%r14), %rdx
leaq 0x18a6(%rip), %rcx      # 0x308e
movl $0x6, %r8d
movq %r14, %rdi
xorl %esi, %esi
callq 0x1120
callq 0x1040
cltq
imulq $0x2e8ba2e9, %rax, %rcx # imm = 0x2E8BA2E9
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rcx
addl %edx, %ecx
leal (%rcx,%rcx,4), %edx
leal (%rcx,%rdx,2), %ecx
subl %ecx, %eax
cltq
shlq $0x5, %rax
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp,%rax), %rsi
movq 0x28(%rsp,%rax), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x146e
movq %rsp, %rsi
movq %r14, %rdi
callq 0x1504
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1863
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x10f0
movq $-0x160, %r14           # imm = 0xFEA0
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x1880
movq (%r12), %rsi
incq %rsi
callq 0x10f0
addq $-0x20, %r12
addq $0x20, %r14
jne 0x186a
movq %rbx, %rax
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18ff
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x10f0
jmp 0x18ff
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
jmp 0x18c9
movq %rax, %r14
addq $-0x10, %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x18e4
movq (%r15), %rsi
incq %rsi
callq 0x10f0
leaq -0x20(%r15), %rax
addq $-0x10, %r15
cmpq %rbx, %r15
movq %rax, %r15
jne 0x18d0
movq %r14, %rdi
callq 0x1130
movq %rax, %r14
xorl %ebx, %ebx
movq 0x160(%rsp,%rbx), %rdi
leaq (%r12,%rbx), %rax
cmpq %rdi, %rax
je 0x191d
movq (%rax), %rsi
incq %rsi
callq 0x10f0
addq $-0x20, %rbx
cmpq $-0x160, %rbx           # imm = 0xFEA0
jne 0x1901
jmp 0x18f4