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

Disassembly:
push 0xffffffffffffffff
push 0x100977f0
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100b8070]
xor eax, esp
push eax
lea eax, [esp + 0x24]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x34]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebx + 0x14]
call edi
sub eax, dword [0x100bccc4]
cmp eax, 0x7d0
jbe 0x10051a36
call edi
mov edi, dword [esi + 0x5975c]
mov dword [0x100bccc4], eax
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
mov eax, dword [edi + 0x18c]
test eax, eax
je 0x10050e74
cmp dword [edi + 0x134], 0
jne 0x10051215
call fcn.1007fb40
test eax, eax
je 0x10051215
mov ecx, dword [0x100bb2cc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
call edx
mov dword [edi + 0xec], 0
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x28c], 0
jne 0x10050fd1
lea ecx, [esp + 0x18]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x14]
push edx
mov ecx, str.SummonImp
mov dword [esp + 0x30], 0
call fcn.10003700
lea eax, [esp + 0x18]
lea esi, [ebx + 4]
push eax
mov ecx, esi
mov byte [esp + 0x30], 1
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov ebp, esp
call fcn.10001820
add eax, 0x10
mov dword [ebp], eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
mov byte [esp + 0x34], 2
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], 1
call fcn.10056d40
mov ebp, eax
mov byte [esp + 0x2c], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10050f53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10050f7b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebp, ebp
je 0x10050fd1
mov eax, ebp
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x10050fd1
call fcn.1007f200
test eax, eax
jne 0x10050fd1
mov esi, dword [ebp]
call fcn.1007e040
test eax, eax
je 0x10050fd1
cmp dword [edi + 0x94], 0
jne 0x10050fd1
cmp dword [edi + 0x98], 0
jne 0x10050fd1
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
push eax
push ecx
mov ecx, edi
call edx
push 0x1b58
jmp 0x10051a30
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x28c], 1
jne 0x100510f3
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.SummonVoidwalker
mov dword [esp + 0x30], 3
call fcn.10003700
lea eax, [esp + 0x14]
lea esi, [ebx + 4]
push eax
mov ecx, esi
mov byte [esp + 0x30], 4
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov ebp, esp
call fcn.10001820
add eax, 0x10
mov dword [ebp], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x34], 5
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], 4
call fcn.10056d40
mov ebp, eax
mov byte [esp + 0x2c], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1005108c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100510b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebp, ebp
je 0x100510f3
mov eax, ebp
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x100510f3
call fcn.1007f200
test eax, eax
jne 0x100510f3
mov esi, dword [ebp]
call fcn.1007e040
test eax, eax
je 0x100510f3
cmp dword [edi + 0x94], 0
jne 0x100510f3
cmp dword [edi + 0x98], 0
je 0x10050fb6
mov eax, dword [ebx + 0x14]
cmp dword [eax + 0x28c], 2
jne 0x10051215
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.SummonFelguard
mov dword [esp + 0x30], 6
call fcn.10003700
lea eax, [esp + 0x14]
lea esi, [ebx + 4]
push eax
mov ecx, esi
mov byte [esp + 0x30], 7
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov ebp, esp
call fcn.10001820
add eax, 0x10
mov dword [ebp], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x34], 8
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], 7
call fcn.10056d40
mov ebp, eax
mov byte [esp + 0x2c], 6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100511ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100511d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebp, ebp
je 0x10051215
mov eax, ebp
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x10051215
call fcn.1007f200
test eax, eax
jne 0x10051215
mov esi, dword [ebp]
call fcn.1007e040
test eax, eax
je 0x10051215
cmp dword [edi + 0x94], 0
jne 0x10051215
cmp dword [edi + 0x98], 0
je 0x10050fb6
lea eax, [esp + 0x14]
push eax
mov ecx, str.AllRank
call fcn.10003700
lea ecx, [esp + 0x18]
push ecx
mov ecx, str.SoulLink
mov dword [esp + 0x30], 9
call fcn.10003700
lea edx, [esp + 0x14]
lea ebp, [ebx + 4]
push edx
mov ecx, ebp
mov byte [esp + 0x30], 0xa
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x1c]
push eax
mov ecx, ebp
mov byte [esp + 0x34], 0xb
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], 0xa
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 9
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100512bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100512e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x10051341
mov eax, ebx
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x10051341
call fcn.1007f200
test eax, eax
jne 0x10051341
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x10051341
mov esi, 0x628c
mov eax, edi
call fcn.10056f10
test eax, eax
jne 0x10051341
call fcn.1007fb40
test eax, eax
je 0x10051341
cmp dword [edi + 0x18c], 0
je 0x10051341
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
push ebx
mov ecx, edi
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.FelArmor
mov dword [esp + 0x30], 0xc
call fcn.10003700
lea eax, [esp + 0x14]
mov bl, 0xd
push eax
mov ecx, ebp
mov byte [esp + 0x30], bl
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0xe
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], bl
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0xc
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100513e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10051410
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x10051467
mov eax, ebx
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x100516aa
call fcn.1007f200
test eax, eax
jne 0x100516aa
call fcn.1007fb40
test eax, eax
je 0x100516aa
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x100516aa
mov esi, dword [ebx]
mov eax, edi
call fcn.10056f10
test eax, eax
jne 0x100516aa
jmp 0x1005169a
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.DemonArmor
mov dword [esp + 0x30], 0xf
call fcn.10003700
lea eax, [esp + 0x14]
push eax
mov ecx, ebp
mov byte [esp + 0x30], 0x10
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0x11
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], 0x10
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0xf
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1005150e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10051536
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x1005158d
mov eax, ebx
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x100516aa
call fcn.1007f200
test eax, eax
jne 0x100516aa
call fcn.1007fb40
test eax, eax
je 0x100516aa
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x100516aa
mov esi, dword [ebx]
mov eax, edi
call fcn.10056f10
test eax, eax
jne 0x100516aa
jmp 0x1005169a
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.DemonSkin
mov dword [esp + 0x30], 0x12
call fcn.10003700
lea eax, [esp + 0x14]
mov bl, 0x13
push eax
mov ecx, ebp
mov byte [esp + 0x30], bl
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0x14
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], bl
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0x12
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10051634
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1005165c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x100516aa
mov eax, ebx
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x100516aa
call fcn.1007f200
test eax, eax
jne 0x100516aa
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x100516aa
mov esi, dword [ebx]
mov eax, edi
call fcn.10056f10
test eax, eax
jne 0x100516aa
call fcn.1007fb40
test eax, eax
je 0x100516aa
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
push ebx
mov ecx, edi
call eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.LifeTap
mov dword [esp + 0x30], 0x15
call fcn.10003700
lea eax, [esp + 0x14]
mov bl, 0x16
push eax
mov ecx, ebp
mov byte [esp + 0x30], bl
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0x17
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], bl
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0x15
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10051751
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10051779
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x100517e6
mov eax, ebx
call fcn.1006e760
call fcn.1007f280
test eax, eax
jne 0x100517e6
call fcn.1007f200
test eax, eax
jne 0x100517e6
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x100517e6
mov eax, edi
call fcn.10003b60
mov esi, eax
mov eax, edi
call fcn.1002ec10
cmp esi, eax
jbe 0x100517e6
call fcn.1007fb40
test eax, eax
je 0x100517e6
mov eax, edi
call fcn.10003b60
cmp eax, 0x3c
jbe 0x100517e6
mov eax, edi
call fcn.1002ec10
cmp eax, 0x50
jae 0x100517e6
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x18]
push ebx
mov ecx, edi
call eax
cmp dword [edi + 0x58], 0
jne 0x10051901
call fcn.1007fb40
test eax, eax
je 0x10051901
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x18]
push edx
mov ecx, str.SoulHarvest
mov dword [esp + 0x30], 0x18
call fcn.10003700
lea eax, [esp + 0x14]
mov bl, 0x19
push eax
mov ecx, ebp
mov byte [esp + 0x30], bl
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0x1a
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], bl
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0x18
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100518a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100518cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x10051901
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x10051901
call fcn.1007fb40
test eax, eax
je 0x10051901
push edi
call fcn.10021900
mov ebx, dword [ebx]
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push ebx
mov ecx, edi
call eax
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x20]
push ecx
mov ecx, str.AllRank
call fcn.10003700
lea edx, [esp + 0x1c]
push edx
mov ecx, str.HealthFunnel
mov dword [esp + 0x30], 0x1b
call fcn.10003700
lea eax, [esp + 0x20]
mov bl, 0x1c
push eax
mov ecx, ebp
mov byte [esp + 0x30], bl
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x1c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0x1d
call fcn.100048e0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x1c], esp
mov esi, esp
call fcn.10001820
add eax, 0x10
mov dword [esi], eax
mov ecx, edi
mov byte [esp + 0x34], bl
call fcn.10056d40
mov ebx, eax
mov byte [esp + 0x2c], 0x1b
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100519a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100519d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x10051a36
mov esi, dword [ebx]
call fcn.1007e040
test eax, eax
je 0x10051a36
mov ecx, dword [edi + 0x64]
test ecx, ecx
jne 0x100519eb
lea eax, [ecx + 0x64]
jmp 0x100519f5
mov eax, dword [edi + 0x40]
imul eax, eax, 0x64
xor edx, edx
div ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x14]
cmp eax, dword [edx + 0x290]
jbe 0x10051a36
mov eax, edi
call fcn.100503d0
cmp eax, 0x32
jae 0x10051a36
call fcn.1007fb40
test eax, eax
je 0x10051a36
push edi
call fcn.10021900
mov ecx, dword [ebx]
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
push ecx
mov ecx, edi
call edx
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4