// File: /workspace/github_c_makefile_star2_O2/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:
movl 0x1c(%rdi), %eax
cmpq $0x13, %rax
ja 0x1769
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
leaq 0x5542(%rip), %rcx      # 0x7074
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x2231
jmp 0x1d6c
leaq 0xc5ec(%rip), %rax      # 0xe138
movq (%rax), %rax
movq 0x28(%rax), %rdi
movl 0x30(%rdi), %eax
cmpl $0x2, %eax
je 0x1d79
cmpl $0x1, %eax
je 0x1d59
testl %eax, %eax
jne 0x1d6c
leaq 0xc5c9(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x23a7
jmp 0x1d6c
leaq 0xc5a9(%rip), %rbx      # 0xe138
movq (%rbx), %rax
movq 0x28(%rax), %rax
movb $0x1, %bpl
cmpl $0x0, 0x2c(%rax)
je 0x1bec
pushq $0xa
popq %rdi
callq 0x1d8c
movq (%rbx), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1bec
leaq 0xc55e(%rip), %rax      # 0xe118
movq (%rax), %rdi
leaq 0x6479(%rip), %rsi      # 0x803d
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x1190
movq (%rbx), %rax
movq 0x28(%rax), %rax
decl 0x2c(%rax)
leaq 0xc562(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
pushq $0xa
popq %rdi
callq 0x1d8c
movq (%rbx), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1cfc
leaq 0xc50d(%rip), %rax      # 0xe118
movq (%rax), %rdi
leaq 0xc52b(%rip), %rbx      # 0xe140
movq (%rbx), %rax
movq 0x28(%rax), %rax
movq 0x88(%rax), %rdx
leaq 0x5a02(%rip), %rsi      # 0x762c
xorl %eax, %eax
callq 0x1190
leaq 0xc4e8(%rip), %rax      # 0xe120
addl $-0xa, (%rax)
movq (%rbx), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
jmp 0x1d6c
pushq $0xa
popq %rdi
callq 0x1d8c
leaq 0xc4db(%rip), %r14      # 0xe138
movq (%r14), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1d29
pushq $0xa
popq %rdi
callq 0x1d8c
leaq 0xc4c4(%rip), %r15      # 0xe140
movq (%r15), %rcx
movq 0x28(%rcx), %r12
cmpl 0x18(%r12), %eax
jl 0x1d37
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 0xc43a(%rip), %rax      # 0xe118
movq (%rax), %rdi
leaq 0x563e(%rip), %rsi      # 0x7326
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1190
movq %rbx, %rdi
callq 0x1030
jmp 0x1d6c
testb %bpl, %bpl
je 0x1d6c
leaq 0xc410(%rip), %rax      # 0xe118
movq (%rax), %rdi
leaq 0xc42e(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x90(%rax), %rdx
leaq 0x5905(%rip), %rsi      # 0x762c
jmp 0x1d50
leaq 0xc410(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %r12
leaq 0xc3da(%rip), %rax      # 0xe118
movq (%rax), %rdi
movq 0x90(%r12), %rdx
leaq 0x55d6(%rip), %rsi      # 0x7326
xorl %eax, %eax
callq 0x1190
jmp 0x1d6c
leaq 0xc3e0(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x24e7
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1769
leaq 0xc3c0(%rip), %rax      # 0xe140
movq (%rax), %rax
movq 0x28(%rax), %rsi
jmp 0x1b3b