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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10098080
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x100b8070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x59798]
test ecx, ecx
lea ebx, [eax + 0x59790]
mov dword [ebp - 0x1c], ebx
je 0x100045fc
mov eax, dword [eax + 0x5975c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
mov edi, dword [eax]
cmp edi, eax
jne 0x10003c1c
call fcn.10080d40
add edi, 8
cmp dword [edi + 0x18], 0
mov dword [ebp - 0x14], edi
jne 0x10003c63
mov eax, dword [esi + 0x14]
push edi
call fcn.1001d1f0
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
push eax
push ebx
lea edx, [ebp - 0x2c]
push edx
call fcn.10004ab0
xor eax, eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x64], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
fld dword [eax + 0x34]
fstp dword [ebp - 0x30]
fld dword [eax + 0x30]
fstp dword [ebp - 0x34]
fld dword [eax + 0x38]
fstp dword [ebp - 0x2c]
fld dword [edi + 0x10]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x2c]
fsub dword [ebp - 0x3c]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
fabs
fstp dword [ebp - 0x20]
fld dword [ebp - 0x20]
fcomp qword [0x100a9800]
fnstsw ax
test ah, 0x41
je 0x10003cd1
mov ecx, edi
call fcn.1007d1d0
neg eax
sbb eax, eax
add eax, 1
mov dword [edi + 0x84], eax
mov eax, dword [edi + 0x18]
cmp eax, 1
mov eax, edi
jne 0x10003cf5
mov edx, dword [esi + 0x14]
push edx
call fcn.1001b910
mov eax, dword [ebx + 4]
mov eax, dword [eax]
push eax
push ebx
lea ecx, [ebp - 0x2c]
push ecx
call fcn.10004ab0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.1006f9f0
test eax, eax
je 0x10003d7c
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
je 0x10003d0e
cmp ecx, 3
jne 0x10003d7c
lea esi, [eax + 0x7c]
lea edx, [ebp - 0x34]
push edx
mov eax, esi
call fcn.10004a20
push eax
xor eax, eax
call fcn.1006dee0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x10003d79
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
lea esi, [eax + 0x7c]
mov eax, esi
call fcn.10004a20
cmp ebx, eax
ja 0x10003d79
mov edi, ebx
call fcn.10022550
mov ecx, eax
lea eax, [ebp - 0x34]
call fcn.10003a50
fcomp qword [0x100a9868]
fnstsw ax
test ah, 0x41
jne 0x10003d76
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
cmp dword [edx + 0x49c], 0
jne 0x10003d76
mov eax, dword [ebp - 0x1c]
call fcn.10004a60
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp + 8]
cmp dword [edi + 0x7c], 0x10000000
ja 0x10003d99
cmp dword [edi + 0x78], 0
je 0x10003d99
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 8], 1
jbe 0x10003d99
call fcn.10004a60
mov eax, dword [edi + 4]
mov ecx, eax
and ecx, 0xfffff
cmp ecx, 0x462c
je 0x10003db8
and eax, 0xfffff
cmp eax, 0x462b
jne 0x10003dd5
mov eax, dword [edi + 0x48]
mov ebx, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x2c]
jne 0x10003dcb
mov eax, dword [edi + 0x44]
cmp eax, dword [ebx + 0x28]
je 0x10003dd8
mov eax, dword [ebp - 0x1c]
call fcn.10004a60
jmp 0x10003dd8
mov ebx, dword [ebp - 0x18]
mov eax, ebx
call fcn.10056eb0
test eax, eax
je 0x10003e03
mov eax, edi
call fcn.10003ac0
test eax, eax
jne 0x10003e03
mov eax, edi
call fcn.10003b20
cmp eax, 0x64
jne 0x10003e03
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 8], 1
ja 0x10003e77
mov al, byte [edi + 0x4c]
test al, 4
je 0x10003e90
test al, 8
jne 0x10003e90
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x44]
push ecx
push eax
mov eax, ebx
call fcn.10003b80
test eax, eax
jne 0x10003e47
mov eax, dword [ebx]
mov edx, dword [eax + 0x74]
mov ecx, ebx
call edx
test eax, eax
je 0x10003e90
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x44]
mov edx, dword [ebx]
push ecx
push eax
mov eax, dword [edx + 0x78]
mov ecx, ebx
call eax
test eax, eax
je 0x10003e90
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x24]
cmp eax, 2
je 0x10003e57
cmp eax, 8
jne 0x10003e69
mov ecx, dword [0x100bb2cc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x90]
push 1
call eax
mov ecx, dword [esi + 0x14]
push ecx
mov eax, edi
call fcn.1001b910
mov eax, dword [ebp - 0x1c]
call fcn.10004a60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx + 0x59794]
mov edi, dword [eax]
add ebx, 0x59790
mov dword [ebp - 0x2c], ebx
cmp edi, dword [ebx + 4]
mov dword [ebp - 0x28], edi
je 0x10004065
cmp dword [edi + 0x20], 0
je 0x10003ee9
cmp edi, dword [ebx + 4]
jne 0x10003ec0
call fcn.10080d40
mov edx, dword [edi + 0x6c]
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x24]
test ecx, 0x10
jne 0x10003edf
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x20], 0
jne 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10003ef3
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10003f26
cmp edi, dword [ebx + 4]
jne 0x10003f03
call fcn.10080d40
mov eax, dword [edi + 0xc]
and eax, 0xfffff
cmp eax, 0x4ef0
jne 0x10003f26
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
jne 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10003f30
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10003f63
cmp edi, dword [ebx + 4]
jne 0x10003f40
call fcn.10080d40
mov eax, dword [edi + 0xc]
and eax, 0xfffff
cmp eax, 0x6930
jne 0x10003f63
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
jne 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10003f6d
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10003f9e
lea esi, [ebp - 0x2c]
call fcn.10004b30
mov eax, dword [eax + 4]
and eax, 0xfffff
cmp eax, 0x6931
jne 0x10003f9e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
je 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10003fa8
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10003fd5
lea esi, [ebp - 0x2c]
call fcn.10004b30
mov eax, dword [eax + 4]
and eax, 0xfffff
cmp eax, 0x6932
jne 0x10003fd5
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
jne 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10003fdf
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x1000400c
lea esi, [ebp - 0x2c]
call fcn.10004b30
mov eax, dword [eax + 4]
and eax, 0xfffff
cmp eax, 0x7385
jne 0x1000400c
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
jne 0x10004043
cmp edi, dword [ebx + 4]
jne 0x10004016
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10004054
lea esi, [ebp - 0x2c]
call fcn.10004b30
mov eax, dword [eax + 4]
and eax, 0xfffff
cmp eax, 0x7238
jne 0x10004054
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, eax
je 0x10004054
mov eax, dword [ebx + 4]
mov eax, dword [eax]
push eax
push ebx
push edi
push ebx
call fcn.10005450
add esp, 0x10
cmp edi, dword [ebx + 4]
jne 0x1000405e
call fcn.10080d40
mov edi, dword [edi]
jmp 0x10003ea4
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0x14]
mov eax, dword [esi + 0x59794]
mov edi, dword [eax]
add esi, 0x59790
cmp dword [esi + 8], 1
jbe 0x100041a9
cmp edi, eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0x34]
fstp dword [ebp - 0x54]
fld dword [ecx + 0x30]
fstp dword [ebp - 0x58]
fld dword [ecx + 0x38]
fstp dword [ebp - 0x50]
jne 0x100040a1
call fcn.10080d40
fld dword [edi + 0x14]
sub esp, 0x18
fstp dword [ebp - 0x30]
fld dword [edi + 0x10]
fstp dword [ebp - 0x34]
fld dword [edi + 0x18]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x50]
fstp dword [esp + 0x14]
fld dword [ebp - 0x58]
fstp dword [esp + 0x10]
fld dword [ebp - 0x54]
fstp dword [esp + 0xc]
fld dword [ebp - 0x2c]
fstp dword [esp + 8]
fld dword [ebp - 0x34]
fstp dword [esp + 4]
fld dword [ebp - 0x30]
fstp dword [esp]
call fcn.10003a10
fcomp qword [0x100a98b0]
add esp, 0x18
fnstsw ax
test ah, 0x41
jne 0x100041a9
jmp 0x10004100
mov eax, dword [esi + 4]
cmp edi, eax
je 0x100041a9
fld dword [edi + 0x14]
fstp dword [ebp - 0x40]
fld dword [edi + 0x10]
fstp dword [ebp - 0x44]
fld dword [edi + 0x18]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x40]
fsub dword [ebp - 0x54]
fld dword [ebp - 0x44]
fsub dword [ebp - 0x58]
fld dword [ebp - 0x3c]
fsub dword [ebp - 0x50]
fld st(1)
fmulp st(2)
fld st(2)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [ebp - 0x24]
fld dword [ebp - 0x24]
call fcn.10094530
fstp dword [ebp - 0x24]
cmp edi, dword [esi + 4]
fld dword [ebp - 0x24]
fstp qword [ebp - 0x2c]
jne 0x1000415d
call fcn.10080d40
cmp dword [edi + 0x20], 0
je 0x10004198
fld qword [0x100a98b0]
fcomp qword [ebp - 0x2c]
fnstsw ax
test ah, 1
jne 0x10004198
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
and edx, 0xfffff
cmp edx, 0x4ef0
je 0x10004198
mov eax, dword [esi + 4]
mov eax, dword [eax]
push eax
push esi
push edi
push esi
call fcn.10005450
add esp, 0x10
cmp edi, dword [esi + 4]
jne 0x100041a2
call fcn.10080d40
mov edi, dword [edi]
jmp 0x10004100
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x64]
test ecx, ecx
je 0x10004276
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x40]
imul eax, eax, 0x64
xor edx, edx
div ecx
cmp eax, 0x46
jae 0x10004276
lea eax, [ebp - 0x20]
push eax
mov ecx, str.Life_Blood
call fcn.10003700
push ecx
mov ecx, esp
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], esp
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [ebp - 0x20]
mov byte [ebp - 4], 1
mov ecx, dword [ebx + 0x14]
push edx
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x28], esp
mov esi, esp
call fcn.10001820
mov edi, dword [ebp - 0x18]
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [ebp - 4], 0
call fcn.10056d40
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000424e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x10004276
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x10004276
mov esi, dword [esi]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push esi
mov ecx, edi
call eax
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x10004345
mov eax, dword [edi + 0x40]
imul eax, eax, 0x64
xor edx, edx
div ecx
cmp eax, 0x3c
jae 0x10004345
lea ecx, [ebp - 0x20]
push ecx
mov ecx, str.GiftoftheNaaru
call fcn.10003700
push ecx
mov dword [ebp - 4], 2
mov edx, esp
mov dword [ebp - 0x28], esp
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 3
mov ecx, dword [ebx + 0x14]
push eax
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.10056d40
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004315
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x10004345
mov eax, esi
call fcn.1006e760
cmp dword [esi + 0x10], 0
jne 0x10004345
call fcn.100574b0
mov esi, dword [esi]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push esi
mov ecx, edi
call eax
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, str.Blood_Fury
call fcn.10003700
push ecx
mov dword [ebp - 4], 4
mov edx, esp
mov dword [ebp - 0x28], esp
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 5
mov ecx, dword [ebx + 0x14]
push eax
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.10056d40
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100043c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x100043f7
mov eax, edi
call fcn.1006e760
cmp dword [edi + 0x10], 0
jne 0x100043f7
mov esi, dword [edi]
call fcn.1007e040
test eax, eax
je 0x100043f7
mov ecx, dword [ebp - 0x18]
mov edi, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push edi
call eax
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, str.Berserk
call fcn.10003700
push ecx
mov dword [ebp - 4], 6
mov edx, esp
mov dword [ebp - 0x28], esp
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 7
mov ecx, dword [ebx + 0x14]
push eax
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.10056d40
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004478
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x100044a0
mov eax, edi
call fcn.1006e760
cmp dword [edi + 0x10], 0
jne 0x100044a0
mov edi, dword [edi]
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push edi
mov ecx, esi
call eax
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, str.Arcane_Torrent
call fcn.10003700
push ecx
mov dword [ebp - 4], 8
mov edx, esp
mov dword [ebp - 0x28], esp
push edx
mov ecx, str.AllRank
call fcn.10003700
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 9
mov ecx, dword [ebx + 0x14]
push eax
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x24], esp
mov edi, esp
call fcn.10001820
add eax, 0x10
mov dword [edi], eax
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.10056d40
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000451e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x1000454f
mov eax, edi
call fcn.1006e760
cmp dword [edi + 0x10], 0
jne 0x1000454f
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x50], 0
je 0x1000454f
mov edx, dword [esi]
mov eax, dword [edi]
mov edx, dword [edx + 0x14]
push eax
mov ecx, esi
call edx
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x14]
mov esi, 0x7617
call fcn.1006f610
test eax, eax
je 0x10004568
mov ebx, dword [ebp - 0x1c]
jmp 0x10003cd1
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebx + 0x40]
cmp eax, 0x3a98
jbe 0x100045aa
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0x9c]
mov eax, dword [ebp - 0x14]
cmp dword [eax], ecx
jne 0x100045a5
mov edx, dword [ebx + 0x64]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + eax*4 + 0x50], ecx
add dword [ebx + 0x64], 1
call esi
mov dword [ebx + 0x40], eax
cmp dword [ebx + 0x64], 5
jne 0x100045fc
mov esi, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebx + 0x64], edi
cmp edi, 4
jne 0x100045ea
mov eax, dword [ebp - 0x14]
call fcn.10003ac0
test eax, eax
je 0x100045d5
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x14]
push ecx
call fcn.1001b910
mov edx, dword [esi + 4]
mov eax, dword [edx]
push eax
push esi
lea eax, [ebp - 0x2c]
push eax
mov ebx, esi
call fcn.10004ab0
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + edi*4 + 0x50]
cmp ecx, dword [ebx + edi*4 + 0x54]
jne 0x100045fc
add edi, 1
cmp edi, 5
jl 0x100045b8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4