// File: /workspace/github_c_makefile_star2_O1/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 0x1e90
leaq 0x53e3(%rip), %rcx      # 0x7044
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x2417
jmp 0x1e90
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1c74
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
leaq 0xb49b(%rip), %r14      # 0xd138
movq (%r14), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jle 0x1ce4
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1ca9
cltq
imulq $0x2c000001, %rax, %rax # imm = 0x2C000001
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x39, %rax
addl %ecx, %eax
leaq 0xb46e(%rip), %r15      # 0xd140
movq (%r15), %rcx
movq 0x28(%rcx), %r12
cmpl 0x18(%r12), %eax
jge 0x1ec9
leaq 0xb42d(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0xb44b(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x90(%rax), %rdx
leaq 0x55ec(%rip), %rsi      # 0x72f6
jmp 0x1e74
leaq 0xb422(%rip), %rax      # 0xd138
movq (%rax), %rax
movq 0x28(%rax), %rdi
movl 0x30(%rdi), %eax
cmpl $0x2, %eax
je 0x1eb6
cmpl $0x1, %eax
je 0x1e7d
testl %eax, %eax
jne 0x1e90
leaq 0xb3ff(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x25c5
jmp 0x1e90
leaq 0xb3df(%rip), %rbx      # 0xd138
movq (%rbx), %rax
movq 0x28(%rax), %rax
xorl %ebp, %ebp
cmpl $0x0, 0x2c(%rax)
je 0x1dd2
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1d68
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 0x1dd2
leaq 0xb37b(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0x6266(%rip), %rsi      # 0x800d
xorl %eax, %eax
callq 0x1190
movq (%rbx), %rax
movq 0x28(%rax), %rax
decl 0x2c(%rax)
leaq 0xb381(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
movl $0x1, %ebp
callq 0x11c0
cmpl $0x7ffffffd, %eax       # imm = 0x7FFFFFFD
jg 0x1dd2
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 0x1e4a
leaq 0xb311(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0xb32f(%rip), %rbx      # 0xd140
movq (%rbx), %rax
movq 0x28(%rax), %rax
movq 0x88(%rax), %rdx
leaq 0x57d6(%rip), %rsi      # 0x75fc
xorl %eax, %eax
callq 0x1190
leaq 0xb2ec(%rip), %rax      # 0xd120
addl $-0xa, (%rax)
movq (%rbx), %rax
movq 0x28(%rax), %rax
movl $0x1, 0x8(%rax)
movl $0x1, %ebp
testl %ebp, %ebp
jne 0x1e90
leaq 0xb2c3(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0xb2e1(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x90(%rax), %rdx
leaq 0x5788(%rip), %rsi      # 0x75fc
xorl %eax, %eax
callq 0x1190
jmp 0x1e90
leaq 0xb2bc(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
callq 0x2734
leaq 0xb281(%rip), %rax      # 0xd118
movq (%rax), %rdi
callq 0x10d0
movq 0xb12a(%rip), %rax      # 0xcfd0
movq (%rax), %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1080
leaq 0xb283(%rip), %rax      # 0xd140
movq (%rax), %rax
movq 0x28(%rax), %rsi
jmp 0x1c6a
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 0xb1ff(%rip), %rax      # 0xd118
movq (%rax), %rdi
leaq 0x53d3(%rip), %rsi      # 0x72f6
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1190
movq %rbx, %rdi
callq 0x1030
jmp 0x1e90