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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1009c890
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 0x10069438
xor eax, eax
mov byte [ebp + 0x79], al
mov byte [ebp + 0x74], al
mov byte [ebp + 0x75], al
mov byte [ebp + 0x77], al
mov byte [ebp + 0x78], al
mov byte [ebp + 0x76], al
mov dword [ebp + 0x80], eax
mov dword [ebp + 0x84], eax
jmp 0x1006a8dd
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 0x10069499
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 + 0x4c]
mov dword [esp + 0x4c], 2
call fcn.1001d970
mov dword [eax], 0
mov dword [ebp + 0x38], 0
jmp 0x1006a8d8
mov eax, ebp
call fcn.100015c0
cmp dword [ebx + 0x94], 0
jne 0x1006a8d8
cmp dword [ebx + 0x98], 0
jne 0x1006a8d8
mov eax, dword [ebp + 0x14]
add eax, 0x59790
cmp dword [eax + 8], 0
mov dword [esp + 0x44], eax
jne 0x100694d7
push ebx
call fcn.10021900
jmp 0x1006a8d8
call fcn.10004a40
mov esi, eax
mov dword [esp + 0x48], esi
call fcn.1006f5f0
fld dword [esi + 0xc]
fstp dword [esp + 0x74]
lea eax, [esp + 0x5c]
fld dword [esi + 8]
lea ecx, [esp + 0x70]
fstp dword [esp + 0x70]
fld dword [esi + 0x10]
fstp dword [esp + 0x78]
fld dword [esi + 0x14]
fstp dword [esp + 0x7c]
fld dword [ebx + 0x34]
fstp dword [esp + 0x60]
fld dword [ebx + 0x30]
fstp dword [esp + 0x5c]
fld dword [ebx + 0x38]
fstp dword [esp + 0x64]
fld dword [ebx + 0x3c]
fstp dword [esp + 0x68]
call fcn.10003a50
fst qword [esp + 0x54]
fcomp qword [0x100a9868]
fnstsw ax
test ah, 5
jp 0x100695d0
fld dword [esp + 0x70]
sub esp, 0x10
fsub dword [esp + 0x6c]
fstp qword [esp + 8]
fld dword [esp + 0x84]
fsub dword [esp + 0x70]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x5c]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x74]
fstp dword [esp + 4]
fld dword [esp + 0x58]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x1006959c
fld dword [esp + 0x4c]
push ecx
fstp dword [esp]
call fcn.10021920
mov edi, esi
call fcn.10055280
test eax, eax
jne 0x100695d0
mov eax, edi
call fcn.10003b20
cmp eax, 0x64
jne 0x1006a8d8
mov eax, dword [esp + 0x44]
call fcn.10004a60
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, edi
call fcn.1001b910
jmp 0x1006a8d8
call fcn.1007e120
test eax, eax
je 0x10069602
mov eax, esi
call fcn.10003ac0
test eax, eax
jne 0x10069602
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 + 0x44]
call fcn.10004a60
call fcn.1007ec20
test eax, eax
je 0x10069619
mov al, 0
mov ecx, dword [0x100bb500]
mov byte [ecx], al
add dword [ebp + 0x7c], 1
cmp dword [ebp + 0x7c], 1
jle 0x1006962b
call fcn.10024010
mov dword [ebp + 0x7c], 0
cmp dword [ebp + 0x38], 0
mov edi, 0x211
jne 0x10069652
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 ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
push ecx
push eax
mov eax, ebx
call fcn.10003b80
test eax, eax
je 0x100696fb
fld qword [0x100a9870]
fld qword [esp + 0x54]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x100696c3
fld dword [esp + 0x74]
mov dword [ebp + 0x34], edi
fld dword [esp + 0x60]
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 + 0x70]
fld dword [esp + 0x5c]
fsubr st(1)
fmulp st(2)
fxch st(1)
fdivrp st(2)
fsubrp st(1)
fstp dword [ebp + 0x24]
fld dword [esp + 0x78]
fstp dword [ebp + 0x2c]
jmp 0x100696c5
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 0x100696f4
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x4c]
call fcn.1001b910
mov eax, dword [esp + 0x44]
call fcn.10004a60
jmp 0x10069701
cmp eax, 1
jne 0x10069708
jmp 0x10069701
push ebx
call fcn.10021900
mov dword [ebp + 0x38], 0
fld dword [esp + 0x70]
sub esp, 0x10
fsub dword [esp + 0x6c]
fstp qword [esp + 8]
fld dword [esp + 0x84]
fsub dword [esp + 0x70]
fstp qword [esp]
call fcn.1006ddc0
fstp dword [esp + 0x5c]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x74]
fstp dword [esp + 4]
fld dword [esp + 0x58]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10069763
fld dword [esp + 0x4c]
push ecx
fstp dword [esp]
call fcn.10021920
push 0x11
call fcn.100579d0
test eax, eax
je 0x10069798
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 0x10069798
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
jle 0x10069798
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov ecx, ebx
call eax
push 0x12
call fcn.100579d0
test eax, eax
je 0x100697cd
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 0x100697cd
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov ecx, ebx
call eax
test eax, eax
jle 0x100697cd
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
push 0x19
call fcn.100579d0
test eax, eax
je 0x100697f2
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x19
mov ecx, ebx
call eax
test eax, eax
jle 0x100697f2
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 0x10069817
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x1a
mov ecx, ebx
call eax
test eax, eax
jle 0x10069817
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x1a
mov ecx, ebx
call eax
push 0xa
mov eax, ebp
call fcn.10004680
fld qword [0x100a9870]
fcomp qword [esp + 0x54]
mov dword [esp + 0x50], eax
fnstsw ax
test ah, 1
jne 0x1006a81f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x1006a81f
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x328], 0
je 0x1006992d
lea edx, [esp + 0x4c]
push edx
mov ecx, str.CalloftheAncestors
call fcn.10003700
lea eax, [esp + 0x4c]
lea edi, [ebp + 0x68]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069cd5
mov ecx, esi
cmp dword [ecx + 0x10], 0
jne 0x10069cd5
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069cd5
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x10069cd5
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x10069cd5
cmp byte [ebp + 0x79], 0
jne 0x10069cd5
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
mov byte [ebp + 0x79], 1
jmp 0x1006a816
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x5a
jae 0x100699e2
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.ManaSpringTotem
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 1
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test edi, edi
je 0x100699e2
cmp dword [edi + 0x10], 0
jne 0x100699e2
mov eax, edi
call fcn.10023fd0
test eax, eax
jne 0x100699e2
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x100699e2
cmp byte [ebp + 0x77], 0
jne 0x100699e2
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x320], 0
je 0x100699e2
mov edi, dword [edi]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
push edi
mov ecx, ebx
call eax
mov byte [ebp + 0x77], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.SearingTotem
call fcn.10003700
lea edx, [esp + 0x4c]
lea edi, [ebp + 0x68]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 2
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069aa1
cmp dword [esi + 0x10], 0
jne 0x10069aa1
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069aa1
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069aa1
cmp byte [ebp + 0x74], 0
jne 0x10069aa1
mov eax, dword [esp + 0x48]
call fcn.10003b20
cmp eax, 0x63
jae 0x10069aa1
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x318], 0
je 0x10069aa1
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov byte [ebp + 0x74], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.TotemofWrath
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 3
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069b5d
cmp dword [esi + 0x10], 0
jne 0x10069b5d
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069b5d
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069b5d
cmp byte [ebp + 0x74], 0
jne 0x10069b5d
mov eax, dword [esp + 0x48]
call fcn.10003b20
cmp eax, 0x63
jae 0x10069b5d
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x31c], 0
je 0x10069b5d
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov byte [ebp + 0x74], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.StoneskinTotem
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 4
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069c19
cmp dword [esi + 0x10], 0
jne 0x10069c19
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069c19
mov eax, dword [esp + 0x48]
call fcn.10003b20
cmp eax, 0x41
jbe 0x10069c19
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069c19
cmp byte [ebp + 0x75], 0
jne 0x10069c19
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x314], 0
je 0x10069c19
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov byte [ebp + 0x75], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.WrathofAirTotem
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 5
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069cd5
cmp dword [esi + 0x10], 0
jne 0x10069cd5
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069cd5
mov eax, dword [esp + 0x48]
call fcn.10003b20
cmp eax, 0x41
jbe 0x10069cd5
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069cd5
cmp byte [ebp + 0x78], 0
jne 0x10069cd5
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x310], 0
je 0x10069cd5
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov byte [ebp + 0x78], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
mov eax, ebx
call fcn.10003b60
cmp eax, 0x1e
ja 0x10069e0d
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.FireElementalTotem
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 6
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069d79
cmp dword [esi + 0x10], 0
jne 0x10069d79
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069d79
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069d79
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.EarthElementalTotem
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069e0d
cmp dword [esi + 0x10], 0
jne 0x10069e0d
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069e0d
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069e0d
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.LightningShield
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069ebe
cmp dword [esi + 0x10], 0
jne 0x10069ebe
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069ebe
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069ebe
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10069ebe
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x32
jbe 0x10069ebe
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a81f
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.WaterShield
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 9
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10069f6f
cmp dword [esi + 0x10], 0
jne 0x10069f6f
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x10069f6f
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10069f6f
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x10069f6f
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x1e
jae 0x10069f6f
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a81f
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.FlameShock
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a02e
cmp dword [esi + 0x10], 0
jne 0x1006a02e
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a02e
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a02e
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x1006a02e
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx]
mov eax, dword [esp + 0x48]
call fcn.1006f6d0
test eax, eax
jne 0x1006a02e
fld qword [0x100a9848]
fcomp qword [esp + 0x54]
fnstsw ax
test ah, 1
jne 0x1006a02e
mov edx, dword [ebx]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [edx + 0x14]
jmp 0x1006a811
lea eax, [esp + 0x4c]
push eax
mov ecx, str.ElementalMastery
call fcn.10003700
lea ecx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a0ce
cmp dword [esi + 0x10], 0
jne 0x1006a0ce
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a0ce
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1006a0ce
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
jbe 0x1006a0ce
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.Heroism
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xc
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a169
cmp dword [esi + 0x10], 0
jne 0x1006a169
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a169
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a169
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x19
jbe 0x1006a169
mov edx, dword [ebx]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [edx + 0x14]
jmp 0x1006a811
lea eax, [esp + 0x4c]
push eax
mov ecx, str.EarthShock
call fcn.10003700
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xd
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a21a
cmp dword [esi + 0x10], 0
jne 0x1006a21a
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a21a
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1006a21a
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x1006a21a
fld qword [0x100a9848]
fcomp qword [esp + 0x54]
fnstsw ax
test ah, 1
jne 0x1006a21a
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
jmp 0x1006a816
mov eax, ebx
call fcn.10003b60
cmp eax, 0x32
ja 0x1006a428
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.StoneclawTotem
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xe
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a2de
cmp dword [esi + 0x10], 0
jne 0x1006a2de
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a2de
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a2de
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x1006a2de
cmp byte [ebp + 0x76], 0
jne 0x1006a2de
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
push 0xc8
mov byte [ebp + 0x75], 1
mov byte [ebp + 0x76], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.Healing_Surge
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a383
cmp dword [esi + 0x10], 0
jne 0x1006a383
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a383
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1006a383
mov eax, ebx
call fcn.1002ec10
cmp eax, 8
jbe 0x1006a383
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.GreaterHeal
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a428
cmp dword [esi + 0x10], 0
jne 0x1006a428
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a428
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1006a428
mov eax, ebx
call fcn.1002ec10
cmp eax, 8
jbe 0x1006a428
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.LavaBurst
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x11
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a4c3
cmp dword [esi + 0x10], 0
jne 0x1006a4c3
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a4c3
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a4c3
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x23
jbe 0x1006a4c3
mov edx, dword [ebx]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [edx + 0x14]
jmp 0x1006a811
cmp dword [esp + 0x50], 1
jle 0x1006a6b9
lea eax, [esp + 0x4c]
push eax
mov ecx, str.Thunderstorm
call fcn.10003700
lea ecx, [esp + 0x4c]
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 + 0x54], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a56e
cmp dword [esi + 0x10], 0
jne 0x1006a56e
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a56e
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1006a56e
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1006a56e
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.ChainLightning
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x13
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x54], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a609
cmp dword [esi + 0x10], 0
jne 0x1006a609
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a609
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a609
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1006a609
mov edx, dword [ebx]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [edx + 0x14]
jmp 0x1006a811
lea eax, [esp + 0x4c]
push eax
mov ecx, str.Fire_Nova
call fcn.10003700
lea ecx, [esp + 0x4c]
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 + 0x54], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a6b9
cmp dword [esi + 0x10], 0
jne 0x1006a6b9
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a6b9
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1006a6b9
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1006a6b9
cmp byte [ebp + 0x74], 0
jne 0x1006a6a0
cmp byte [ebp + 0x79], 0
je 0x1006a6b9
mov ecx, dword [esp + 0x44]
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
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.LightningBolt
call fcn.10003700
lea edx, [esp + 0x4c]
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 + 0x54], 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 + 0x4c]
mov dword [esp + 0x44], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a759
cmp dword [esi + 0x10], 0
jne 0x1006a759
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1006a759
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1006a759
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
jbe 0x1006a759
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
jmp 0x1006a816
lea ecx, [esp + 0x4c]
push ecx
mov ecx, str.FrostShock
call fcn.10003700
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x16
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x54], 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 + 0x4c]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test edi, edi
je 0x1006a81f
cmp dword [edi + 0x10], 0
jne 0x1006a81f
mov eax, edi
call fcn.10023fd0
test eax, eax
jne 0x1006a81f
fld qword [0x100a9848]
fcomp qword [esp + 0x54]
fnstsw ax
test ah, 1
jne 0x1006a81f
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x1006a81f
mov esi, dword [esp + 0x48]
mov eax, esi
call fcn.10003b20
cmp eax, 0x28
jae 0x1006a81f
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1006a81f
mov eax, esi
call fcn.1006f950
test eax, eax
je 0x1006a81f
mov eax, dword [ebx]
mov ecx, dword [edi]
mov edx, dword [eax + 0x14]
push ecx
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
fld qword [0x100a98b0]
fcomp qword [esp + 0x54]
fnstsw ax
test ah, 1
jne 0x1006a8d8
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [ebp + 0x3c]
cmp eax, 0x3e8
jbe 0x1006a8d8
lea eax, [esp + 0x44]
push eax
mov ecx, str.Attack
call fcn.10003700
lea ecx, [esp + 0x44]
push ecx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 0x17
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x54], 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 + 0x44]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1006a8d8
mov eax, dword [esi]
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x64]
call eax
test eax, eax
jne 0x1006a8d8
mov eax, esi
call fcn.1002ebf0
test eax, eax
jne 0x1006a8d8
mov edx, dword [ebx]
mov eax, dword [esi]
mov edx, dword [edx + 0x14]
push eax
mov ecx, ebx
call edx
call edi
mov dword [ebp + 0x3c], eax
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