// File: /workspace/github_cpp_makefile_star2_O1/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 0x1a24(%rip), %rsi      # 0x303d
leaq 0x1a26(%rip), %rdx      # 0x3046
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x1940
leaq 0x40(%rsp), %rbx
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1a05(%rip), %rsi      # 0x3047
leaq 0x1a05(%rip), %rdx      # 0x304e
movq %rbx, %rdi
callq 0x1940
leaq 0x60(%rsp), %rbx
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19e9(%rip), %rsi      # 0x304f
leaq 0x19e8(%rip), %rdx      # 0x3055
movq %rbx, %rdi
callq 0x1940
leaq 0x80(%rsp), %rbx
leaq 0x90(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19c6(%rip), %rsi      # 0x3056
leaq 0x19c9(%rip), %rdx      # 0x3060
movq %rbx, %rdi
callq 0x1940
leaq 0xa0(%rsp), %rbx
leaq 0xb0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x19a7(%rip), %rsi      # 0x3061
leaq 0x19a5(%rip), %rdx      # 0x3066
movq %rbx, %rdi
callq 0x1940
leaq 0xc0(%rsp), %rbx
leaq 0xd0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1983(%rip), %rsi      # 0x3067
leaq 0x1981(%rip), %rdx      # 0x306c
movq %rbx, %rdi
callq 0x1940
leaq 0xe0(%rsp), %rbx
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x195f(%rip), %rsi      # 0x306d
leaq 0x195e(%rip), %rdx      # 0x3073
movq %rbx, %rdi
callq 0x1940
leaq 0x100(%rsp), %rbx
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x193c(%rip), %rsi      # 0x3074
leaq 0x193b(%rip), %rdx      # 0x307a
movq %rbx, %rdi
callq 0x1940
leaq 0x120(%rsp), %rbx
leaq 0x130(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1919(%rip), %rsi      # 0x307b
leaq 0x1918(%rip), %rdx      # 0x3081
movq %rbx, %rdi
callq 0x1940
leaq 0x140(%rsp), %rbx
leaq 0x150(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18f6(%rip), %rsi      # 0x3082
leaq 0x18f3(%rip), %rdx      # 0x3086
movq %rbx, %rdi
callq 0x1940
leaq 0x160(%rsp), %rbx
leaq 0x170(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x18d0(%rip), %rsi      # 0x3087
leaq 0x18cf(%rip), %rdx      # 0x308d
movq %rbx, %rdi
callq 0x1940
leaq 0x183f(%rip), %rsi      # 0x300c
movq %r14, %rdi
callq 0x1050
testl %eax, %eax
jne 0x17f4
movq 0x8(%r14), %rdx
leaq 0x18aa(%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 0x1500
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x185f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x10f0
movq $-0x160, %r14           # imm = 0xFEA0
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x187c
movq (%r12), %rsi
incq %rsi
callq 0x10f0
addq $-0x20, %r12
addq $0x20, %r14
jne 0x1866
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 0x1907
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x10f0
jmp 0x1907
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
jmp 0x18c5
movq %rax, %r14
cmpq %rbx, %r15
je 0x1932
addq $-0x10, %rbx
leaq 0x20(%rsp), %r15
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x18ea
movq (%rbx), %rsi
incq %rsi
callq 0x10f0
leaq -0x20(%rbx), %rax
addq $-0x10, %rbx
cmpq %r15, %rbx
movq %rax, %rbx
jne 0x18d6
jmp 0x1932
movq %rax, %r14
movq %r15, %rbx
jmp 0x18c8
movq %rax, %r14
xorl %ebx, %ebx
movq 0x160(%rsp,%rbx), %rdi
leaq (%r12,%rbx), %rax
cmpq %rdi, %rax
je 0x1925
movq (%rax), %rsi
incq %rsi
callq 0x10f0
addq $-0x20, %rbx
cmpq $-0x160, %rbx           # imm = 0xFEA0
jne 0x1909
movq %r14, %rdi
callq 0x1130