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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1009a242
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 0x100497f8
xor eax, eax
mov dword [ebp + 0x88], eax
mov dword [ebp + 0x8c], eax
xor eax, eax
jmp 0x1004b8a2
mov ebx, dword [eax + 0x5975c]
xor esi, esi
cmp ebx, esi
je 0x100497f1
mov eax, ebp
call fcn.100015c0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x597c8]
cmp eax, 4
jne 0x10049833
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.1001ad10
push ebp
call fcn.10003bc0
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x59798], esi
ja 0x10049883
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov dword [ebx + 0xec], esi
mov eax, dword [ebp + 0x14]
add eax, 0x597d0
lea ebx, [esp + 0x34]
mov dword [esp + 0x34], 2
call fcn.1001d970
mov dword [eax], esi
mov dword [ebp + 0x38], esi
jmp 0x1004b89d
cmp dword [ebx + 0x94], esi
jne 0x1004b89d
cmp dword [ebx + 0x98], esi
jne 0x1004b89d
add eax, 0x59790
cmp dword [eax + 8], esi
mov dword [esp + 0x30], eax
jne 0x100498b4
push ebx
call fcn.10021900
jmp 0x1004b89d
call fcn.10004a40
mov esi, eax
mov dword [esp + 0x2c], 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 + 0x3c]
fcomp qword [0x100a9868]
fnstsw ax
test ah, 5
jp 0x10049b00
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 + 0x38]
add esp, 4
fld dword [0x100a982c]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10049976
fld dword [esp + 0x28]
push ecx
fstp dword [esp]
call fcn.10021920
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.10004610
test eax, eax
je 0x10049aca
fld qword [0x100a9908]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x10049aca
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.Consecration
call fcn.10003700
lea edx, [esp + 0x34]
lea edi, [ebp + 0x98]
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 + 0x2c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10049a2b
cmp dword [esi + 0x10], 0
jne 0x10049a2b
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x10049a2b
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
ja 0x1004a9ca
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x388], 0
je 0x10049b00
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x10049b00
lea edx, [esp + 0x34]
push edx
mov ecx, str.Divine_Storm
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 1
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x2c], 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 + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test edi, edi
je 0x10049b00
cmp dword [edi + 0x10], 0
jne 0x10049b00
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x10049b00
mov edx, dword [ebx]
mov eax, dword [edi]
mov edx, dword [edx + 0x14]
push eax
mov ecx, ebx
call edx
jmp 0x1004b89d
mov edi, dword [esp + 0x2c]
call fcn.10055280
test eax, eax
jne 0x10049b00
mov eax, edi
call fcn.10003b20
cmp eax, 0x64
jne 0x1004b89d
mov eax, dword [ebp + 0x14]
push eax
mov eax, edi
call fcn.1001b910
mov eax, dword [esp + 0x30]
call fcn.10004a60
jmp 0x1004b89d
call fcn.1007e120
test eax, eax
mov esi, dword [esp + 0x2c]
je 0x10049b36
mov eax, esi
call fcn.10003ac0
test eax, eax
jne 0x10049b36
mov al, 0
mov ecx, dword [0x100bb500]
mov byte [ecx], al
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, esi
call fcn.1001b910
mov eax, dword [esp + 0x30]
call fcn.10004a60
call fcn.1007ec20
test eax, eax
je 0x10049b50
mov al, 0
mov ecx, dword [0x100bb500]
mov byte [ecx], al
add dword [ebp + 0x84], 1
cmp dword [ebp + 0x38], 0
mov edi, 0x211
jne 0x10049b77
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 0x10049c71
fld qword [0x100a98b0]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x10049bd1
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 0x10049bd3
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 + 0x44]
add esp, 4
fld dword [0x100a9900]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x40]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10049c31
push ebx
call fcn.10021900
fld dword [esp + 0x34]
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 0x10049c63
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x2c]
push edx
call fcn.1001b910
mov eax, dword [esp + 0x30]
call fcn.10004a60
jmp 0x10049cf8
cmp eax, 1
jne 0x10049cff
jmp 0x10049cf8
fld dword [esi + 0xc]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
fld dword [esi + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x80]
fstp dword [esp + 0x70]
fld dword [esi + 0x10]
mov eax, dword [esp + 0x70]
fstp dword [esp + 0x78]
mov edx, dword [esp + 0x78]
fld dword [esi + 0x14]
mov dword [esp + 0x5c], eax
fstp dword [esp + 0x7c]
mov eax, dword [esp + 0x7c]
fld dword [ebx + 0x34]
mov dword [esp + 0x68], eax
fstp dword [esp + 0x4c]
mov dword [esp + 0x6c], ecx
fld dword [ebx + 0x30]
lea eax, [esp + 0x48]
fstp dword [esp + 0x48]
lea ecx, [esp + 0x5c]
fld dword [ebx + 0x38]
mov dword [esp + 0x64], 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 0x1004b836
push ebx
call fcn.10021900
mov dword [ebp + 0x38], 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 + 0x44]
add esp, 4
fld dword [0x100a9900]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x40]
fstp dword [esp]
call fcn.100218b0
add esp, 0xc
test eax, eax
jne 0x10049d5d
push ebx
call fcn.10021900
fld dword [esp + 0x34]
push ecx
fstp dword [esp]
call fcn.10021920
lea edx, [esp + 0x34]
push edx
mov ecx, str.ArdentDefender
call fcn.10003700
lea eax, [esp + 0x34]
lea edi, [ebp + 0x98]
push eax
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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10049e12
mov eax, ebx
call fcn.10003b60
cmp eax, 0x14
jae 0x10049e12
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x10049e12
mov edx, dword [esp + 0x28]
cmp dword [edx + 0x10], 0
jne 0x10049e12
mov eax, edx
mov esi, dword [eax]
mov eax, ebx
call fcn.10056fd0
test eax, eax
jne 0x10049e12
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
push ecx
mov ecx, ebx
call edx
jmp 0x1004b89d
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
lea eax, [esp + 0x34]
push eax
mov ecx, str.LayonHands
call fcn.10003700
lea ecx, [esp + 0x34]
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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10049eb9
mov eax, ebx
call fcn.10003b60
mov edx, dword [ebp + 0x14]
cmp eax, dword [edx + 0x398]
jae 0x10049eb9
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10049eb9
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x10], 0
jne 0x10049eb9
mov esi, 0x64ab
mov eax, ebx
call fcn.10056fd0
test eax, eax
je 0x10049df6
lea eax, [esp + 0x34]
push eax
mov ecx, str.DivineShield
call fcn.10003700
lea ecx, [esp + 0x34]
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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x10049f6f
mov eax, ebx
call fcn.10003b60
mov edx, dword [ebp + 0x14]
cmp eax, dword [edx + 0x394]
jae 0x10049f6f
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x10049f6f
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x10], 0
jne 0x10049f6f
mov esi, 0x64ab
mov eax, ebx
call fcn.10056fd0
test eax, eax
jne 0x10049f6f
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
push ecx
mov ecx, ebx
call edx
mov edi, ebx
call fcn.100574b0
jmp 0x1004b89d
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x1004a256
call fcn.1007f280
test eax, eax
jne 0x1004a256
call fcn.1007f200
test eax, eax
jne 0x1004a256
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x338], 0
je 0x1004a083
lea ecx, [esp + 0x30]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, str.SealOfRighteousness
mov dword [esp + 0xc4], 5
call fcn.10003700
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0xc4], 6
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov byte [esp + 0xc8], 7
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x40], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 6
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a083
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a083
mov edx, dword [esp + 0x28]
mov esi, dword [edx]
mov eax, ebx
call fcn.10056f10
test eax, eax
je 0x1004a36c
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x33c], 0
je 0x1004a16d
lea ecx, [esp + 0x30]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, str.SealOfTruth
mov dword [esp + 0xc4], 8
call fcn.10003700
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0xc4], 9
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov byte [esp + 0xc8], 0xa
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 9
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a16d
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a16d
mov edx, dword [esp + 0x28]
mov esi, dword [edx]
mov eax, ebx
call fcn.10056f10
test eax, eax
je 0x1004a36c
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x344], 0
je 0x1004a256
lea ecx, [esp + 0x30]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, str.SealofLight
mov dword [esp + 0xc4], 0xb
call fcn.10003700
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0xc4], 0xc
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov byte [esp + 0xc8], 0xd
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0xc
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a256
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a256
mov esi, 0x4ec5
mov eax, ebx
call fcn.10056f10
test eax, eax
je 0x1004a36c
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x348], 0
je 0x1004a385
call fcn.1007f280
test eax, eax
jne 0x1004a385
call fcn.1007f200
test eax, eax
jne 0x1004a385
lea ecx, [esp + 0x30]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, str.BlessingofMight
mov dword [esp + 0xc4], 0xe
call fcn.10003700
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0xc4], 0xf
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov byte [esp + 0xc8], 0x10
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0xf
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a385
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a385
mov esi, 0x134fe
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x1004a385
mov esi, 0xdcc8
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x1004a385
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x18]
push ecx
push eax
mov ecx, ebx
call edx
jmp 0x1004b89d
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x34c], 0
je 0x1004a488
call fcn.1007f280
test eax, eax
jne 0x1004a488
call fcn.1007f200
test eax, eax
jne 0x1004a488
lea ecx, [esp + 0x30]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, str.BlessingofKings
mov dword [esp + 0xc4], 0x11
call fcn.10003700
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0xc4], 0x12
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov byte [esp + 0xc8], 0x13
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0x12
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a488
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a488
mov esi, 0x134d7
mov eax, ebx
call fcn.10056f10
test eax, eax
je 0x1004a365
lea eax, [esp + 0x34]
push eax
mov ecx, str.DivinePlea
call fcn.10003700
lea ecx, [esp + 0x34]
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 + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
mov dword [esp + 0x28], eax
lea eax, [esp + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x3c
jae 0x1004a53c
cmp dword [esp + 0x28], 0
je 0x1004a53c
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004a53c
mov edx, dword [esp + 0x28]
mov esi, dword [edx]
mov eax, ebx
call fcn.10056f10
test eax, eax
jne 0x1004a53c
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
jne 0x1004a53c
mov ecx, dword [eax]
mov edx, dword [ebx]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x18]
push ecx
push eax
mov ecx, ebx
call edx
jmp 0x1004b89d
push 0x11
call fcn.100579d0
test eax, eax
je 0x1004a571
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 0x1004a571
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
jle 0x1004a571
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov ecx, ebx
call eax
push 0x12
call fcn.100579d0
test eax, eax
je 0x1004a5a6
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 0x1004a5a6
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov ecx, ebx
call eax
test eax, eax
jle 0x1004a5a6
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
push 0x19
call fcn.100579d0
test eax, eax
je 0x1004a5cb
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x19
mov ecx, ebx
call eax
test eax, eax
jle 0x1004a5cb
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 0x1004a5f0
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x1a
mov ecx, ebx
call eax
test eax, eax
jle 0x1004a5f0
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x1a
mov ecx, ebx
call eax
mov esi, ebx
call fcn.10057090
test eax, eax
je 0x1004a6a7
push 3
mov eax, ebx
call fcn.1005ab70
test eax, eax
jne 0x1004a61d
push 4
mov eax, ebx
call fcn.1005ab70
test eax, eax
je 0x1004a6a7
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1004a6a7
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.Cleanse
call fcn.10003700
lea edx, [esp + 0x34]
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 + 0x3c], 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 + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a6a7
mov edi, ebx
call fcn.100574b0
mov ecx, dword [esi]
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
push ecx
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004b89d
mov eax, dword [esp + 0x2c]
call fcn.1006f9f0
test eax, eax
je 0x1004a874
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x2bc
jbe 0x1004a874
mov esi, dword [esp + 0x2c]
call fcn.1006f5f0
lea eax, [esp + 0x34]
push eax
mov ecx, str.Hammerofjustice
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x16
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
lea eax, [esp + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.Hammerofjustice
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x19
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001420
lea eax, [esp + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
fld qword [0x100a9870]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x1004ab24
fcomp qword [0x100a98b0]
fnstsw ax
test ah, 1
jne 0x1004ab26
cmp dword [ebx + 0x94], 0
jne 0x1004ab26
cmp dword [ebx + 0x98], 0
jne 0x1004ab26
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x374], 0
lea ecx, [esp + 0x34]
push ecx
je 0x1004a9e8
mov ecx, str.Judgement
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x1a
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004ab26
mov eax, esi
cmp dword [eax + 0x10], 0
jne 0x1004ab26
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004ab26
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
jbe 0x1004ab26
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
jmp 0x1004aa63
lea edx, [esp + 0x34]
push edx
mov ecx, str.HammerofWrath
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x17
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a920
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xf
jbe 0x1004a920
cmp dword [esi + 0x10], 0
jne 0x1004a920
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004a920
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp + 0x3c]
cmp eax, 0x2bc
jbe 0x1004a920
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
push ecx
mov ecx, ebx
call edx
call esi
mov dword [ebp + 0x3c], eax
jmp 0x1004b89d
mov esi, 0xe8ba
mov eax, ebx
call fcn.10056f10
test eax, eax
je 0x1004a72c
lea eax, [esp + 0x34]
push eax
mov ecx, str.Exorcism
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x18
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004a72c
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x23
jbe 0x1004a72c
cmp dword [esi + 0x10], 0
jne 0x1004a72c
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004a72c
push ebx
call fcn.10021900
mov ecx, dword [esp + 0x28]
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 0x1004b89d
mov ecx, str.AvengersShield
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x1b
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004aa7b
cmp dword [esi + 0x10], 0
jne 0x1004aa7b
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1004aa7b
push ebx
call fcn.10021900
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004ab26
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.HandofReckoing
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x1c
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004ab26
mov eax, esi
cmp dword [eax + 0x10], 0
jne 0x1004ab26
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004ab26
mov eax, dword [esp + 0x2c]
call fcn.10003b20
cmp eax, 0x64
jne 0x1004ab26
push ebx
call fcn.10021900
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x18]
push ecx
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004ab26
fstp st(0)
fld qword [0x100a9808]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 1
jne 0x1004b832
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x2bc
jbe 0x1004b832
fld qword [0x100a98f8]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 1
jne 0x1004ab65
call fcn.10024010
fld qword [0x100a98b0]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x1004ac14
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x360], 0
je 0x1004ac14
lea edx, [esp + 0x34]
push edx
mov ecx, str.CrusaderStrike
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x1d
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004ac14
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
jbe 0x1004ac14
cmp dword [esi + 0x10], 0
jne 0x1004ac14
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004ac14
cmp dword [ebx + 0x60], 3
jb 0x1004b081
lea eax, [esp + 0x34]
push eax
mov ecx, str.Judgement
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x1e
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004acae
cmp dword [esi + 0x10], 0
jne 0x1004acae
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004acae
mov eax, ebx
call fcn.1002ec10
mov esi, eax
cmp esi, 0xa
jbe 0x1004acae
mov ecx, dword [ebx + 0x60]
xor eax, eax
test ecx, ecx
sete al
cmp eax, 3
jge 0x1004acae
cmp esi, 0x50
jb 0x1004b081
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
lea eax, [esp + 0x34]
push eax
mov ecx, str.DivineProtection
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x1f
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004ad33
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004ad33
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
je 0x1004b081
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
lea eax, [esp + 0x34]
push eax
mov ecx, str.HolyShield
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x20
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004adc4
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004adc4
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
jne 0x1004adc4
mov eax, ebx
call fcn.10003b60
cmp eax, 0x50
jb 0x1004b081
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
lea eax, [esp + 0x34]
push eax
mov ecx, str.AvengingWrath
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x21
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004ae6a
mov eax, dword [esp + 0x2c]
call fcn.10003b20
cmp eax, 0x50
jbe 0x1004ae6a
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004ae6a
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
jne 0x1004ae6a
mov edx, dword [ebx]
mov ecx, eax
mov eax, dword [ecx]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.Holy_Radiance
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x22
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004aefe
mov eax, ebx
call fcn.10003b60
cmp eax, 0x3c
ja 0x1004aefe
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1004aefe
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x10], 0
jne 0x1004aefe
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x3c
ja 0x1004b081
lea eax, [esp + 0x34]
push eax
mov ecx, str.Guardian_of_Ancient_Kings
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x23
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004af86
mov eax, ebx
call fcn.10003b60
cmp eax, 0x28
ja 0x1004af86
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004af86
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
je 0x1004b081
mov esi, dword [ebp + 0x14]
mov eax, ebx
call fcn.10003b60
cmp eax, dword [esi + 0x37c]
jae 0x1004b08d
mov eax, dword [ebx + 0x60]
cmp eax, dword [esi + 0x3a0]
jb 0x1004b08d
lea eax, [esp + 0x30]
push eax
mov ecx, str.AllRank
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.WordofGlory
mov dword [esp + 0xc4], 0x24
call fcn.10003700
lea edx, [esp + 0x30]
push edx
mov ecx, edi
mov byte [esp + 0xc4], 0x25
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0xc8], 0x26
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 dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0x25
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b08d
mov eax, esi
call fcn.1006e760
mov esi, dword [esi]
call fcn.1007e040
test eax, eax
je 0x1004b08d
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x10], 0
jne 0x1004b08d
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push ecx
jmp 0x1004b820
lea eax, [esp + 0x34]
push eax
mov ecx, str.Divine_Storm
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x27
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b109
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004b109
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x10], 0
je 0x1004b081
push 0xa
mov eax, ebp
call fcn.10004680
mov ecx, dword [ebp + 0x14]
cmp eax, dword [ecx + 0x378]
mov dword [esp + 0x30], eax
jbe 0x1004b1d2
cmp dword [ecx + 0x390], 0
je 0x1004b1d2
lea eax, [esp + 0x34]
push eax
mov ecx, str.HolyWrath
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x28
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b1d2
cmp dword [esi + 0x10], 0
jne 0x1004b1d2
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004b1d2
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x14
jbe 0x1004b1d2
mov ecx, dword [esp + 0x28]
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
xor eax, eax
jmp 0x1004b8a2
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 0x378]
jbe 0x1004b276
cmp dword [eax + 0x38c], 0
je 0x1004b276
lea edx, [esp + 0x34]
push edx
mov ecx, str.Consecration
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x29
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b276
cmp dword [esi + 0x10], 0
jne 0x1004b276
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004b276
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x32
ja 0x1004b081
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebp + 0x14]
cmp eax, dword [ecx + 0x39c]
jb 0x1004b31e
lea edx, [esp + 0x34]
push edx
mov ecx, str.TemplarsVerdict
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x2a
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b31e
mov ecx, esi
mov esi, dword [ecx]
call fcn.1007e040
test eax, eax
je 0x1004b31e
mov edx, dword [esp + 0x30]
cmp dword [edx + 0x10], 0
jne 0x1004b31e
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
mov ecx, edx
mov edx, dword [ecx]
push edx
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
xor eax, eax
jmp 0x1004b8a2
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x35c], 0
je 0x1004b39d
lea edx, [esp + 0x34]
push edx
mov ecx, str.AvengersShield
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x2b
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b39d
cmp dword [esi + 0x10], 0
jne 0x1004b39d
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x32
ja 0x1004b81d
fld qword [0x100a98b0]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x1004b4cd
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x35c], 0
je 0x1004b4cd
mov ecx, dword [ebx + 0x60]
cmp ecx, dword [eax + 0x39c]
jb 0x1004b455
mov eax, ebx
call fcn.10003b60
cmp eax, 0x46
jbe 0x1004b455
lea eax, [esp + 0x34]
push eax
mov ecx, str.ShieldofRighteousness
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x2c
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b455
cmp dword [esi + 0x10], 0
jne 0x1004b455
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
jne 0x1004b1b2
lea ecx, [esp + 0x34]
push ecx
mov ecx, str.HammeroftheRighteous
call fcn.10003700
lea edx, [esp + 0x34]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x2d
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b4cd
cmp dword [esi + 0x10], 0
jne 0x1004b4cd
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
jne 0x1004b081
mov eax, ebx
call fcn.10003b60
mov ecx, dword [ebp + 0x14]
cmp eax, dword [ecx + 0x380]
jae 0x1004b611
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x12
jbe 0x1004b611
lea edx, [esp + 0x30]
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, str.FlashofLight
mov dword [esp + 0xc4], 0x2e
call fcn.10003700
lea ecx, [esp + 0x30]
push ecx
mov ecx, edi
mov byte [esp + 0xc4], 0x2f
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov byte [esp + 0xc8], 0x30
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 dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0x2f
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b611
mov eax, esi
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x1004b611
call fcn.1007f200
test eax, eax
jne 0x1004b611
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1004b611
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1004b611
cmp dword [esi + 0x10], eax
jne 0x1004b611
push ebx
call fcn.10021900
mov edi, ebx
call fcn.100574b0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x18]
push ecx
push eax
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
xor eax, eax
jmp 0x1004b8a2
mov eax, ebx
call fcn.10003b60
mov ecx, dword [ebp + 0x14]
cmp eax, dword [ecx + 0x380]
jae 0x1004b728
mov eax, ebx
call fcn.1002ec10
cmp eax, 0x19
jbe 0x1004b728
lea edx, [esp + 0x30]
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [esp + 0x34]
push eax
mov ecx, str.DivineLight
mov dword [esp + 0xc4], 0x31
call fcn.10003700
lea ecx, [esp + 0x30]
push ecx
mov ecx, edi
mov byte [esp + 0xc4], 0x32
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov byte [esp + 0xc8], 0x33
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 dword [esi], eax
mov ecx, ebx
mov byte [esp + 0xc8], 0x32
call fcn.10056d40
mov esi, eax
lea eax, [esp + 0x34]
mov dword [esp + 0x28], esi
call fcn.10001660
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b728
mov eax, esi
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x1004b728
call fcn.1007f200
test eax, eax
jne 0x1004b728
mov eax, esi
mov esi, dword [eax]
call fcn.1007e040
test eax, eax
je 0x1004b728
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.10023fd0
test eax, eax
jne 0x1004b728
cmp dword [esi + 0x10], eax
je 0x1004b5e0
lea eax, [esp + 0x34]
push eax
mov ecx, str.Judgement
call fcn.10003700
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x34
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x34]
mov dword [esp + 0x28], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b7ac
cmp dword [esi + 0x10], 0
jne 0x1004b7ac
mov edx, esi
mov esi, dword [edx]
call fcn.1007e040
test eax, eax
je 0x1004b7ac
mov eax, ebx
call fcn.1002ec10
cmp eax, 0xa
ja 0x1004b1b2
lea ecx, [esp + 0x28]
push ecx
mov ecx, str.Attack
call fcn.10003700
lea edx, [esp + 0x28]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x35
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], 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 + 0x28]
mov dword [esp + 0xc0], 0xffffffff
call fcn.10001660
test esi, esi
je 0x1004b832
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 0x1004b832
mov eax, dword [esi]
push eax
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
xor eax, eax
jmp 0x1004b8a2
fld dword [esp + 0x74]
lea eax, [ebp + 0x24]
fld dword [esp + 0x4c]
mov ecx, 1
fsubr st(1)
mov edx, edi
fld qword [esp + 0x3c]
mov esi, ebx
mov dword [ebp + 0x34], edi
fdiv st(1), st(0)
mov dword [ebp + 0x38], ecx
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)
fstp dword [eax]
call fcn.10056b10
cmp eax, 2
jne 0x1004b891
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x30]
call fcn.1001b910
mov eax, dword [esp + 0x30]
call fcn.10004a60
jmp 0x1004b896
cmp eax, 1
jne 0x1004b89d
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