Function at 0x1002ff60
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1009b2f2
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100b8070]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebp, ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x597c4]
cmp ecx, 2
je 0x1002ffb0
xor eax, eax
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x74], eax
jmp 0x10031760
mov ebx, dword [eax + 0x5975c]
push eax
call fcn.1001ad10
push ebp
call fcn.10003bc0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x59798]
test eax, eax
ja 0x1003000a
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov dword [ebx + 0xec], 0
mov eax, dword [ebp + 0x14]
add eax, 0x597d0
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 2
call fcn.1001d970
mov dword [eax], 0
jmp 0x10031754
mov eax, ebp
call fcn.100015c0
cmp dword [ebx + 0x94], 0
jne 0x1003175b
cmp dword [ebx + 0x98], 0
jne 0x1003175b
mov eax, dword [ebp + 0x14]
add eax, 0x59790
cmp dword [eax + 8], 0
mov dword [esp + 0x1c], eax
jne 0x10030048
push ebx
call fcn.10021900
jmp 0x1003175b
call fcn.10004a40
mov esi, eax
mov dword [esp + 0x18], esi
call fcn.1006f5f0
fld dword [esi + 0xc]
fstp dword [esp + 0x60]
lea eax, [esp + 0x48]
fld dword [esi + 8]
lea ecx, [esp + 0x5c]
fstp dword [esp + 0x5c]
fld dword [esi + 0x10]
fstp dword [esp + 0x64]
fld dword [esi + 0x14]
fstp dword [esp + 0x68]
fld dword [ebx + 0x34]
fstp dword [esp + 0x4c]
fld dword [ebx + 0x30]
fstp dword [esp + 0x48]
fld dword [ebx + 0x38]
fstp dword [esp + 0x50]
fld dword [ebx + 0x3c]
fstp dword [esp + 0x54]
call fcn.10003a50
fst qword [esp + 0x24]
fcomp qword [0x100a9868]
fnstsw ax
test ah, 5
jp 0x10030144
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x24]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10030110
push ebx
call fcn.10021900
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call fcn.10021920
mov edi, esi
call fcn.10055280
test eax, eax
jne 0x10030144
mov eax, edi
call fcn.10003b20
cmp eax, 0x64
jne 0x1003175b
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, edi
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
jmp 0x1003175b
call fcn.1007e120
test eax, eax
je 0x10030176
mov eax, esi
call fcn.10003ac0
test eax, eax
jne 0x10030176
mov al, 0
mov ecx, dword [0x100bb500]
mov byte [ecx], al
mov edx, dword [ebp + 0x14]
push edx
mov eax, esi
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
call fcn.1007ec20
test eax, eax
je 0x1003018d
mov al, 0
mov ecx, dword [0x100bb500]
mov byte [ecx], al
add dword [ebp + 0x6c], 1
cmp dword [ebp + 0x6c], 1
jle 0x1003019f
call fcn.10024010
mov dword [ebp + 0x6c], 0
cmp dword [ebp + 0x38], 0
mov edi, 0x211
jne 0x100301c6
fld dword [ebx + 0x34]
fstp dword [ebp + 0x28]
fld dword [ebx + 0x30]
fstp dword [ebp + 0x24]
fld dword [ebx + 0x38]
fstp dword [ebp + 0x2c]
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x38], 1
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x408], 3
mov eax, dword [esi + 0x44]
jne 0x1003099d
mov esi, dword [esi + 0x48]
push esi
push eax
mov eax, ebx
call fcn.10003b80
test eax, eax
je 0x10030278
fld qword [0x100a9870]
fld qword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x10030240
fld dword [esp + 0x60]
mov dword [ebp + 0x34], edi
fld dword [esp + 0x4c]
mov dword [ebp + 0x38], 1
fsubr st(1)
fld qword [0x100a9960]
fmul st(1), st(0)
fxch st(1)
fdiv st(3)
fsubp st(2)
fxch st(1)
fstp dword [ebp + 0x28]
fld dword [esp + 0x5c]
fld dword [esp + 0x48]
fsubr st(1)
fmulp st(2)
fxch st(1)
fdivrp st(2)
fsubrp st(1)
fstp dword [ebp + 0x24]
jmp 0x10030242
fstp st(0)
mov edx, dword [ebp + 0x34]
lea eax, [ebp + 0x24]
mov ecx, 2
mov esi, ebx
call fcn.10056b10
cmp eax, 2
jne 0x10030271
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
jmp 0x1003027e
cmp eax, 1
jne 0x10030285
jmp 0x1003027e
push ebx
call fcn.10021900
mov dword [ebp + 0x38], 0
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fst qword [esp + 0x4c]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fst qword [esp + 0x44]
fxch st(1)
fstp qword [esp + 8]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x24]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x100302e7
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call fcn.10021920
push 0x11
call fcn.100579d0
test eax, eax
je 0x10030322
mov eax, dword [ebp + 0x14]
mov edx, dword [ebx]
add eax, 0xc
push eax
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
test eax, eax
je 0x10030322
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
jle 0x10030322
cmp byte [ebp + 0x68], 0
jne 0x10030322
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov ecx, ebx
call eax
push 0x12
call fcn.100579d0
test eax, eax
je 0x1003035d
mov eax, dword [ebp + 0x14]
mov edx, dword [ebx]
add eax, 0xc
push eax
mov eax, dword [edx + 0x3c]
mov ecx, ebx
call eax
test eax, eax
je 0x1003035d
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov ecx, ebx
call eax
test eax, eax
jle 0x1003035d
cmp byte [ebp + 0x68], 0
jne 0x1003035d
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
push 0x19
call fcn.100579d0
test eax, eax
je 0x10030388
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x19
mov ecx, ebx
call eax
test eax, eax
jle 0x10030388
cmp byte [ebp + 0x68], 0
jne 0x10030388
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x19
mov ecx, ebx
call eax
push 0x1a
call fcn.100579d0
test eax, eax
je 0x100303b3
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x1a
mov ecx, ebx
call eax
test eax, eax
jle 0x100303b3
cmp byte [ebp + 0x68], 0
jne 0x100303b3
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x1a
mov ecx, ebx
call eax
cmp dword [ebp + 0x38], 0
jne 0x10030878
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.Rejuvenation
call fcn.10003700
lea edx, [esp + 0x20]
lea edi, [ebp + 4]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x100304b1
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x100304b1
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x100304b1
mov eax, esi
mov esi, dword [eax]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x100304b1
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x100304b1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x100304b1
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x100304b1
mov eax, ebx
call fcn.10003b60
cmp eax, 0x50
jae 0x100304b1
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x420], 0
je 0x10030584
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.Lifebloom
call fcn.10003700
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 1
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030584
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x10030584
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030584
mov eax, esi
mov esi, dword [eax]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10030584
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x10030584
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x10030584
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
jbe 0x10030584
mov eax, ebx
call fcn.10003b60
cmp eax, 0x55
jb 0x1003048c
lea eax, [esp + 0x20]
push eax
mov ecx, str.HealingTouch
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 2
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030650
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x10030650
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030650
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x10030650
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x10030650
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x10030650
mov eax, ebx
call fcn.10003b60
cmp eax, 0x37
jb 0x1003048c
mov eax, ebp
call fcn.10004640
cmp eax, 1
jbe 0x10030650
mov eax, ebx
call fcn.10003b60
cmp eax, 0x3c
jb 0x1003048c
lea eax, [esp + 0x20]
push eax
mov ecx, str.Innervate
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 3
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030706
cmp byte [ebp + 0x68], 0
jne 0x10030706
cmp dword [esi + 0x10], 0
jne 0x10030706
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030706
mov edx, esi
mov esi, dword [edx]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10030706
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10030706
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x10030706
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jb 0x1003048c
fld qword [0x100a9958]
fcomp qword [esp + 0x24]
fnstsw ax
test ah, 1
jne 0x10030878
lea eax, [esp + 0x20]
push eax
mov ecx, str.Moonfire
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 4
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x100307d4
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x100307d4
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x100307d4
mov eax, dword [esp + 0x18]
mov edx, esi
mov esi, dword [edx]
call fcn.1006f6d0
test eax, eax
jne 0x100307d4
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x100307d4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x100307d4
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jae 0x10030493
lea eax, [esp + 0x20]
push eax
mov ecx, str.Wrath
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 5
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov edi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test edi, edi
je 0x10030878
mov eax, edi
call fcn.1006e760
cmp dword [edi + 0x10], 0
jne 0x10030878
mov eax, edi
call fcn.10023fd0
test eax, eax
jne 0x10030878
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x10030878
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x10030878
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jb 0x10030878
mov eax, dword [edi]
push eax
jmp 0x1003049a
fld qword [0x100a98b0]
fcomp qword [esp + 0x24]
fnstsw ax
test ah, 0x41
jne 0x1003093b
lea eax, [esp + 0x20]
push eax
mov ecx, str.Attack
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
lea ecx, [ebp + 4]
mov dword [esp + 0xc4], 6
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov edi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test edi, edi
je 0x1003093b
mov eax, edi
call fcn.1006e760
mov eax, edi
call fcn.10023fd0
test eax, eax
jne 0x1003093b
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x1003093b
mov eax, edi
call fcn.1002ebf0
test eax, eax
jne 0x1003093b
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x1003093b
mov edx, dword [ebx]
mov eax, dword [edi]
mov edx, dword [edx + 0x14]
push eax
mov ecx, ebx
call edx
call esi
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jae 0x1003175b
fld qword [0x100a9940]
fld qword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x10030996
fld dword [esp + 0x60]
mov edx, 0x211
fld qword [esp + 0x34]
mov ecx, 2
fld qword [0x100a9840]
fmul st(1), st(0)
fxch st(1)
fdiv st(3)
fsubp st(2)
fxch st(1)
fstp dword [ebp + 0x28]
fld qword [esp + 0x3c]
fmulp st(1)
fdivrp st(1)
fsubr dword [esp + 0x5c]
jmp 0x1003171c
fstp st(0)
jmp 0x1003175b
mov ecx, dword [esi + 0x48]
push ecx
push eax
mov eax, ebx
call fcn.10003b80
test eax, eax
je 0x10030a94
fld qword [0x100a98b0]
fld qword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x100309f4
fld dword [esp + 0x60]
mov dword [ebp + 0x34], edi
fld dword [esp + 0x4c]
mov dword [ebp + 0x38], 1
fsubr st(1)
fdiv st(2)
fsubp st(1)
fstp dword [ebp + 0x28]
fld dword [esp + 0x5c]
fld dword [esp + 0x48]
fsubr st(1)
fdivrp st(2)
fsubrp st(1)
fstp dword [ebp + 0x24]
jmp 0x100309f6
fstp st(0)
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x30]
add esp, 4
fld dword [0x100a9900]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10030a54
push ebx
call fcn.10021900
fld dword [esp + 0x20]
push ecx
fstp dword [esp]
call fcn.10021920
mov edx, dword [ebp + 0x34]
lea eax, [ebp + 0x24]
mov ecx, 1
mov esi, ebx
call fcn.10056b10
cmp eax, 2
jne 0x10030a86
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
jmp 0x10030b1b
cmp eax, 1
jne 0x10030b22
jmp 0x10030b1b
fld dword [esi + 0xc]
fstp dword [esp + 0x74]
mov eax, dword [esp + 0x74]
fld dword [esi + 8]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x80]
fstp dword [esp + 0x70]
fld dword [esi + 0x10]
mov edx, dword [esp + 0x70]
fstp dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
fld dword [esi + 0x14]
mov dword [esp + 0x5c], edx
fstp dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
fld dword [ebx + 0x34]
mov dword [esp + 0x64], ecx
fstp dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
fld dword [ebx + 0x30]
lea eax, [esp + 0x48]
fstp dword [esp + 0x48]
lea ecx, [esp + 0x5c]
fld dword [ebx + 0x38]
mov dword [esp + 0x68], edx
fstp dword [esp + 0x50]
fld dword [ebx + 0x3c]
fstp dword [esp + 0x54]
call fcn.10003a50
fcomp qword [0x100a98b0]
fnstsw ax
test ah, 5
jp 0x100316f0
push ebx
call fcn.10021900
mov dword [ebp + 0x38], 0
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fst qword [esp + 0x4c]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fst qword [esp + 0x44]
fxch st(1)
fstp qword [esp + 8]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x30]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10030b84
fld dword [esp + 0x20]
push ecx
fstp dword [esp]
call fcn.10021920
push 0x19
call fcn.100579d0
test eax, eax
je 0x10030ba9
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x19
mov ecx, ebx
call eax
test eax, eax
jle 0x10030ba9
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x19
mov ecx, ebx
call eax
push 0x1a
call fcn.100579d0
test eax, eax
je 0x10030bce
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x1a
mov ecx, ebx
call eax
test eax, eax
jle 0x10030bce
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x1a
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x2bc
jbe 0x10031760
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.DireBearForm
call fcn.10003700
lea edx, [esp + 0x20]
lea edi, [ebp + 4]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 7
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
jne 0x10030cb0
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.BearForm
call fcn.10003700
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 8
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030cf2
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10030cf2
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10030cf2
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [ebx]
push 9
push eax
mov eax, dword [edx + 0x10]
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x428], 0
je 0x10030da8
lea edx, [esp + 0x20]
push edx
mov ecx, str.Enrage
call fcn.10003700
lea eax, [esp + 0x20]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 9
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030da8
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10030da8
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x10], eax
jne 0x10030da8
mov eax, ebx
call fcn.1002ec30
cmp eax, 7
jae 0x10030da8
mov edx, dword [ebx]
mov eax, dword [esi]
mov edx, dword [edx + 0x10]
push 9
push eax
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x414], 0
je 0x10030e64
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.FaerieFire1
call fcn.10003700
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xa
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030e64
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
mov eax, dword [esp + 0x18]
call fcn.1006f6d0
test eax, eax
jne 0x10030e64
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10030e64
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030e64
cmp dword [esi + 0x10], eax
jne 0x10030e64
mov eax, dword [esp + 0x18]
call fcn.10003b20
cmp eax, 0x64
je 0x10030d8c
lea eax, [esp + 0x20]
push eax
mov ecx, str.Barkskin
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xb
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10030f01
cmp dword [esi + 0x10], 0
jne 0x10030f01
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030f01
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x10030f01
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
fld qword [0x100a9940]
fld qword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x10030f8a
fld dword [esp + 0x60]
lea eax, [ebp + 0x24]
fld qword [esp + 0x34]
mov edx, 0x211
fld qword [0x100a9840]
mov ecx, 2
fmul st(1), st(0)
mov esi, ebx
fxch st(1)
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x38], 1
fdiv st(3)
fsubp st(2)
fxch st(1)
fstp dword [ebp + 0x28]
fld qword [esp + 0x3c]
fmulp st(1)
fdivrp st(1)
fsubr dword [esp + 0x5c]
fstp dword [eax]
call fcn.10056b10
cmp eax, 2
jne 0x10030f7a
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
jmp 0x10030f7f
cmp eax, 1
jne 0x10030f86
mov dword [ebp + 0x38], 0
fld qword [esp + 0x24]
fcomp qword [0x100a98b0]
fnstsw ax
test ah, 5
jp 0x10031760
mov eax, ebx
call fcn.10003b60
cmp eax, 0x1e
jae 0x1003101a
lea edx, [esp + 0x20]
push edx
mov ecx, str.Survival_Instincts
call fcn.10003700
lea eax, [esp + 0x20]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0xc
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1003101a
mov eax, esi
call fcn.1006e760
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10030d8c
mov eax, ebx
call fcn.10003b60
mov ecx, dword [ebp + 0x14]
cmp eax, dword [ecx + 0x40c]
jae 0x100310bb
lea edx, [esp + 0x20]
push edx
mov ecx, str.FrenziedRegeneration
call fcn.10003700
lea eax, [esp + 0x20]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0xd
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x100310bb
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x100310bb
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x100310bb
cmp dword [esi + 0x10], eax
je 0x10030d8c
lea eax, [esp + 0x20]
push eax
mov ecx, str.Berserk
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xe
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10031152
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x10031152
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10031152
cmp dword [esi + 0x10], eax
jne 0x10031152
mov eax, ebx
call fcn.1002ec30
cmp eax, 0xa
jb 0x10030d8c
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x418], 0
je 0x1003122a
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.DemoralizingRoar
call fcn.10003700
lea edx, [esp + 0x20]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xf
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1003122a
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
mov eax, dword [esp + 0x18]
call fcn.1006f6d0
test eax, eax
jne 0x1003122a
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1003122a
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1003122a
cmp dword [esi + 0x10], eax
jne 0x1003122a
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jb 0x1003122a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x10]
push 9
push ecx
mov ecx, ebx
call edx
call esi
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
mov eax, dword [ebp + 0x14]
xor esi, esi
cmp dword [eax + 0x424], esi
je 0x100312ad
fldz
lea ecx, [esp + 0x20]
push ecx
fstp dword [esp + 0x20]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x2c]
push eax
push 0x8456
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], esi
call fcn.1007de20
add esp, 0x10
cmp dword [esp + 0x20], esi
jne 0x100312ad
mov eax, ebx
call fcn.1002ec30
cmp eax, 0xf
jbe 0x100312ad
mov esi, 0x8456
call fcn.1007e040
test eax, eax
je 0x100312ad
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
push esi
call eax
test eax, eax
jne 0x100312ad
mov edx, dword [ebx]
mov eax, dword [edx + 0x10]
push 9
push esi
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
push 7
mov eax, ebp
call fcn.10004680
cmp eax, 1
jle 0x100313de
fldz
lea ecx, [esp + 0x20]
push ecx
fstp dword [esp + 0x28]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x38]
push eax
xor esi, esi
push 0x30b
mov dword [esp + 0x40], esi
mov dword [esp + 0x30], esi
call fcn.1007de20
add esp, 0x10
cmp dword [esp + 0x20], esi
jne 0x10031337
mov eax, ebx
call fcn.1002ec30
cmp eax, 0x1e
jbe 0x10031337
mov esi, 0x30b
call fcn.1007e040
test eax, eax
je 0x10031337
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
push esi
call eax
test eax, eax
jne 0x10031337
mov edx, dword [ebx]
mov eax, dword [edx + 0x10]
push 9
push esi
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
lea ecx, [esp + 0x1c]
push ecx
mov ecx, str.Thrash
call fcn.10003700
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x10
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x18], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x100313de
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x100313de
mov eax, ebx
call fcn.1002ec30
cmp eax, 0x19
jb 0x100313de
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x100313de
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x10]
push 9
push ecx
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
lea eax, [esp + 0x20]
push eax
mov ecx, str.Lacerate
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x11
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10031475
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x10031475
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10031475
cmp dword [esi + 0x10], eax
jne 0x10031475
mov eax, ebx
call fcn.1002ec30
cmp eax, 0xf
jae 0x10030d8c
lea eax, [esp + 0x20]
push eax
mov ecx, str.Pulverize
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x12
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1003150c
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1003150c
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1003150c
cmp dword [esi + 0x10], eax
jne 0x1003150c
mov eax, ebx
call fcn.1002ec30
cmp eax, 0xf
jae 0x10030d8c
lea eax, [esp + 0x20]
push eax
mov ecx, str.Bash
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x13
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x100315b6
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
mov eax, dword [esp + 0x18]
call fcn.1006f6d0
test eax, eax
jne 0x100315b6
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x100315b6
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x100315b6
cmp dword [esi + 0x10], eax
jne 0x100315b6
mov eax, ebx
call fcn.1002ec30
cmp eax, 0xa
jae 0x100316d7
lea eax, [esp + 0x20]
push eax
mov ecx, str.Maul
call fcn.10003700
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x14
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10031660
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x10031660
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10031660
cmp dword [esi + 0x10], eax
jne 0x10031660
mov eax, ebx
call fcn.1002ec30
cmp eax, 0x1e
jb 0x10031660
mov eax, dword [esi]
mov edx, dword [ebx]
push 9
push eax
mov eax, dword [edx + 0x10]
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.Attack
call fcn.10003700
lea edx, [esp + 0x14]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x15
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov esi, eax
lea eax, [esp + 0x14]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10031760
mov eax, esi
call fcn.1006e760
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10031760
mov ecx, dword [esi]
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
push 9
push ecx
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1003175b
fld dword [esp + 0x74]
mov edx, edi
fld dword [esp + 0x4c]
mov ecx, 1
fsubr st(1)
fld qword [esp + 0x24]
fdiv st(1), st(0)
fxch st(2)
fsubrp st(1)
fstp dword [ebp + 0x28]
fld dword [esp + 0x70]
fld dword [esp + 0x48]
fsubr st(1)
fdivrp st(2)
fsubrp st(1)
lea eax, [ebp + 0x24]
mov esi, ebx
fstp dword [eax]
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x38], 1
call fcn.10056b10
cmp eax, 2
jne 0x1003174f
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
call fcn.1001b910
mov eax, dword [esp + 0x1c]
call fcn.10004a60
jmp 0x10031754
cmp eax, 1
jne 0x1003175b
mov dword [ebp + 0x38], 0
mov eax, 1
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 4