// File: /workspace/github_c_makefile_star2_O3/return5[P]c_ish_one/./src/attack.c
// Function: useSpecial
static void useSpecial(Character *const attacker,Character *const defender) {
	switch(attacker->type) {
		case 0:playerSpecial();
			break;
		case 1://sowrdsman
		case 2://skeleton
		case 5://archer
		case 11://monster
		case 13://enraged halfling
		case 14://enraged halfling
		case 15://enraged monster
		case 16://enraged monster
		case 17://enraged delmer
		case 18://enraged delmer
		case 12://delmer
			powerAttack(attacker,defender);
			break;
		case 3://slinger
		case 6://spearman
		case 10://halflings
		case 7://four legged beast
			throwOpponent(attacker,defender);
			break;
		case 8://mage
		case 9://scrugg
			defenseDown(attacker,defender);
			break;		
		case 4: theifSpecial();
			break;	
		case 19: bossSpecial();
			break;
		 default: //do nothing
			 break;
	 }
	 refreshPrompt();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl 0x1c(%rdi), %eax
cmpq $0x13, %rax
ja 0x1eda
leaq 0x5438(%rip), %rcx      # 0x7074
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x23f7
jmp 0x1eda
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1c4f
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
leaq 0xb4c0(%rip), %r14      # 0xd138
movq (%r14), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1e97
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1c88
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
leaq 0xb48f(%rip), %r15      # 0xd140
movq (%r15), %rcx
movq 0x28(%rcx), %r12
cmpl 0x18(%r12), %eax
jl 0x1ea5
movl $0xa0, %edi
callq 0x1160
movq %rax, %rbx
movq 0x88(%r12), %rsi
movl 0x10(%r12), %edx
movq %rax, %rdi
xorl %eax, %eax
callq 0x1180
movq (%r14), %rax
movq 0x28(%rax), %rax
addl $-0x2, 0x14(%rax)
movq (%r15), %rcx
movq 0x28(%rcx), %rcx
movl 0x10(%rcx), %edx
subl %edx, (%rax)
movl $0x2, 0x4(%rax)
movl $0x1, 0x8(%rcx)
leaq 0xb405(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0x5609(%rip), %rsi      # 0x7326
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1190
movq %rbx, %rdi
callq 0x1030
jmp 0x1eda
leaq 0xb3fd(%rip), %rax      # 0xd138
movq (%rax), %rax
movq 0x28(%rax), %rdi
movl 0x30(%rdi), %eax
cmpl $0x2, %eax
je 0x1f00
cmpl $0x1, %eax
je 0x1ec7
testl %eax, %eax
jne 0x1eda
leaq 0xb3da(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x25a5
jmp 0x1eda
leaq 0xb3ba(%rip), %rbx      # 0xd138
movq (%rbx), %rax
movq 0x28(%rax), %rax
movb $0x1, %bpl
cmpl $0x0, 0x2c(%rax)
je 0x1df5
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1d8e
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
movq (%rbx), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1df5
leaq 0xb355(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0x6270(%rip), %rsi      # 0x803d
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x1190
movq (%rbx), %rax
movq 0x28(%rax), %rax
decl 0x2c(%rax)
leaq 0xb359(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1df5
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
movq (%rbx), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1e6a
leaq 0xb2ee(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0xb30c(%rip), %rbx      # 0xd140
movq (%rbx), %rax
movq 0x28(%rax), %rax
movq 0x88(%rax), %rdx
leaq 0x57e3(%rip), %rsi      # 0x762c
xorl %eax, %eax
callq 0x1190
leaq 0xb2c9(%rip), %rax      # 0xd120
addl $-0xa, (%rax)
movq (%rbx), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
jmp 0x1eda
testb %bpl, %bpl
je 0x1eda
leaq 0xb2a2(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0xb2c0(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x90(%rax), %rdx
leaq 0x5797(%rip), %rsi      # 0x762c
jmp 0x1ebe
leaq 0xb2a2(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %r12
leaq 0xb26c(%rip), %rax      # 0xd118
movq (%rax), %rdi
movq 0x90(%r12), %rdx
leaq 0x5468(%rip), %rsi      # 0x7326
xorl %eax, %eax
callq 0x1190
jmp 0x1eda
leaq 0xb272(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x271d
leaq 0xb237(%rip), %rax      # 0xd118
movq (%rax), %rdi
callq 0x10d0
movq 0xb0e0(%rip), %rax      # 0xcfd0
movq (%rax), %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1080
leaq 0xb239(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
jmp 0x1c45