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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x10122094]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x18], ebx
call fcn.10065010
mov esi, eax
test esi, esi
je 0x10064598
cmp dword [ebx + 0x84], esi
je 0x10064598
call fcn.10036be0
test eax, eax
je 0x10064598
mov eax, dword [0x1012f100]
xor ecx, ecx
cmp esi, 0x6c
mov dword [ebx + 0x84], esi
cmovne eax, ecx
mov ecx, ebx
mov dword [0x1012f100], eax
call fcn.10064be0
cmp dword [ebx + 0x84], 0x6c
jne 0x100645bf
mov eax, dword [0x1012f100]
add eax, 0x539
cmp dword [0x101249c8], eax
je 0x100645bf
mov ecx, ebx
mov dword [0x101249c8], eax
call fcn.10064be0
cmp dword [ebx + 0xd4], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x10064b0f
mov eax, dword [ebx + 0xd4]
lea esi, [eax - 1]
test esi, esi
js 0x100645e3
cmp esi, eax
jl 0x100645fa
push 0x1ba
push str.D:_a_slashdiablo_maphack_slashdiablo_maphackBHModulesAutoTeleATIncludesArrayEx.h
push str.IsIndexValid_nIndex_
call fcn.100c6aee
add esp, 0xc
mov eax, dword [ebx + 0xdc]
mov dword [ebx + 0xd0], 0
cmp byte [ebx + 0x71], 0
mov ecx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x60], eax
je 0x10064696
call fcn.10036be0
test eax, eax
je 0x10064673
mov dword [esp + 0x20], 0x3c
mov dword [esp + 0x24], 0xffffff00
mov byte [esp + 0x28], 0xff
call fcn.10036be0
test eax, eax
je 0x10064673
call fcn.10036be0
mov eax, dword [eax + 0xa8]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10064673
nop word [eax + eax]
mov eax, dword [ecx]
cmp word [eax], 0x36
je 0x100646ec
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x10064660
push 0x10105538
push 1
push ebx
mov dword [ebx + 0xd4], 0
call fcn.100650f0
add esp, 0xc
call edi
mov dword [ebx + 0x64], eax
mov byte [ebx + 0x71], 0
call fcn.10036be0
mov eax, dword [eax + 0xa8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
cmp word [eax], 0x36
jne 0x10064a96
cmp byte [ebx + 0x72], 0
mov byte [ebx + 0x73], 1
je 0x1006479b
mov byte [ebx + 0x72], 0
call edi
mov dword [ebx + 0x68], eax
cmp dword [ebx + 0xd4], 0
jle 0x10064706
mov ecx, dword [ebx + 0xdc]
lea esi, [ebx + 0xd0]
mov dword [esi], 0
movzx edx, word [ecx + 4]
mov dword [esp + 0x10], edx
jmp 0x1006475e
mov eax, 0x36
mov word [esp + 0x21], ax
lea eax, [esp + 0x20]
push eax
push 0
push 9
call fcn.1003b7d0
jmp 0x1006468d
push 0x1ba
push str.D:_a_slashdiablo_maphack_slashdiablo_maphackBHModulesAutoTeleATIncludesArrayEx.h
push str.IsIndexValid_nIndex_
call fcn.100c6aee
mov ecx, dword [ebx + 0xdc]
lea esi, [ebx + 0xd0]
mov eax, dword [ebx + 0xd4]
add esp, 0xc
mov dword [esi], 0
movzx edx, word [ecx + 4]
mov dword [esp + 0x10], edx
test eax, eax
jg 0x1006475e
push 0x1ba
push str.D:_a_slashdiablo_maphack_slashdiablo_maphackBHModulesAutoTeleATIncludesArrayEx.h
push str.IsIndexValid_nIndex_
call fcn.100c6aee
mov ecx, dword [ebx + 0xdc]
add esp, 0xc
mov dword [esi], 0
movzx esi, word [ecx]
push 5
call fcn.100b554a
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x10]
push edi
push 0
push 5
mov byte [edi], 0xf
mov word [edi + 1], si
mov word [edi + 3], ax
call fcn.1003b7d0
push edi
call fcn.100b4f0b
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 4
call edi
sub eax, dword [ebx + 0x68]
cmp eax, 0x1f4
jbe 0x10064800
mov eax, dword [ebx + 0x58]
cmp eax, 5
jl 0x100647e6
push 0x101055d0
push 1
push ebx
call fcn.100650f0
add esp, 0xc
mov dword [ebx + 0xd4], 0
mov dword [ebx + 0x58], 0
mov byte [ebx + 0x74], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
inc eax
mov byte [ebx + 0x72], 1
mov dword [ebx + 0x58], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0xd4], 0
jle 0x1006482e
mov ecx, dword [ebx + 0xdc]
lea eax, [ebx + 0xdc]
lea edi, [ebx + 0xd0]
mov dword [esp + 0x10], eax
mov dword [edi], 0
mov edx, dword [ecx + 4]
mov dword [esp + 0x14], edx
jmp 0x1006488f
push 0x1ba
push str.D:_a_slashdiablo_maphack_slashdiablo_maphackBHModulesAutoTeleATIncludesArrayEx.h
push str.IsIndexValid_nIndex_
call fcn.100c6aee
mov ecx, dword [ebx + 0xdc]
lea esi, [ebx + 0xdc]
mov eax, dword [ebx + 0xd4]
lea edi, [ebx + 0xd0]
add esp, 0xc
mov dword [edi], 0
mov dword [esp + 0x10], esi
mov edx, dword [ecx + 4]
mov dword [esp + 0x14], edx
test eax, eax
jg 0x1006488f
push 0x1ba
push str.D:_a_slashdiablo_maphack_slashdiablo_maphackBHModulesAutoTeleATIncludesArrayEx.h
push str.IsIndexValid_nIndex_
call fcn.100c6aee
mov ecx, dword [esi]
add esp, 0xc
mov dword [esp + 0x10], esi
mov dword [edi], 0
mov esi, dword [ecx]
call fcn.10036be0
mov ecx, eax
call fcn.100369d0
mov edi, eax
call fcn.10036be0
mov ecx, eax
call fcn.100369a0
sub edi, dword [esp + 0x14]
sub eax, esi
imul eax, eax
xorps xmm1, xmm1
imul edi, edi
add eax, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1010ddc0]
ucomisd xmm1, xmm0
ja 0x100648e2
sqrtsd xmm0, xmm0
jmp 0x100648e7
call fcn.100e01f0
call fcn.100df5d0
cmp eax, 5
ja 0x1006495c
mov eax, dword [ebx + 0xd4]
mov edx, 1
cmp eax, edx
cmovl edx, eax
mov dword [esp + 0x1c], edx
test eax, eax
jle 0x10064958
cmp edx, 1
jl 0x10064958
mov ecx, eax
xor esi, esi
sub ecx, edx
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x10064950
mov ebx, dword [esp + 0x10]
lea edi, [edx*8]
mov edx, dword [ebx]
lea edi, [edi + 8]
mov eax, dword [edi + edx - 8]
mov ecx, dword [edi + edx - 4]
mov dword [edx + esi*8], eax
mov dword [edx + esi*8 + 4], ecx
inc esi
cmp esi, dword [esp + 0x14]
jl 0x10064927
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0xd4]
sub eax, edx
mov dword [ebx + 0xd4], eax
mov byte [ebx + 0x72], 1
cmp byte [ebx + 0x74], 0
je 0x10064b34
mov esi, dword [ebx + 0x60]
mov edi, dword [ebx + 0x5c]
call fcn.10036be0
mov ecx, eax
call fcn.100369d0
mov ebx, eax
call fcn.10036be0
mov ecx, eax
call fcn.100369a0
sub eax, edi
sub ebx, esi
imul eax, eax
xorps xmm1, xmm1
imul ebx, ebx
add eax, ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1010ddc0]
ucomisd xmm1, xmm0
ja 0x100649b5
sqrtsd xmm0, xmm0
jmp 0x100649ba
call fcn.100e01f0
call fcn.100df5d0
cmp eax, 5
ja 0x10064b30
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x18]
mov edi, dword [esi + 0x80]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x5c]
mov dword [esp + 0x14], eax
test edi, edi
je 0x10064a6c
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10064a6c
mov eax, dword [edi + 0x30]
test eax, eax
je 0x10064a6c
push 4
push eax
call ebx
test eax, eax
jne 0x10064a6c
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x74]
test eax, eax
je 0x10064a6c
push 4
push eax
call ebx
test eax, eax
jne 0x10064a6c
mov eax, dword [edi + 0x30]
mov edi, dword [eax + 0x74]
test edi, edi
je 0x10064a6c
push 4
push edi
call ebx
test eax, eax
jne 0x10064a6c
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x10064a6c
push 4
push eax
call ebx
test eax, eax
jne 0x10064a6c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
nop word [eax + eax]
cmp dword [edi], 0
je 0x10064a62
mov eax, dword [edi + 0x2c]
cmp edx, dword [eax + 0xc]
jne 0x10064a62
cmp ecx, dword [eax + 0x10]
je 0x10064a91
mov edi, dword [edi + 0xe8]
test edi, edi
jne 0x10064a50
xor eax, eax
mov dword [esi + 0x7c], eax
mov byte [esi + 0x70], 1
mov dword [esi + 0xd4], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
jmp 0x10064a6e
cmp byte [ebx + 0x73], 0
je 0x10064acc
push 0x10105560
push 1
push ebx
mov byte [ebx + 0x73], 0
mov dword [ebx + 0xd4], 0
call fcn.100650f0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
call edi
sub eax, dword [ebx + 0x64]
cmp eax, 0x3e8
jbe 0x10064b95
mov eax, dword [0x1012f210]
mov dword [ebx + 0xd4], 0
push dword [eax]
push 0x10105598
push 1
push ebx
call fcn.100650f0
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov word [ebx + 0x71], 0x101
mov byte [ebx + 0x73], 0
mov dword [ebx + 0x58], 0
jmp 0x10064b3a
mov ebx, dword [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [ebx + 0x74], 0
je 0x10064b95
cmp byte [ebx + 0x70], 0
je 0x10064b95
cmp dword [ebx + 0x6c], 0
je 0x10064b95
call edi
sub eax, dword [ebx + 0x6c]
cmp eax, 0x96
jbe 0x10064b95
mov esi, dword [ebx + 0x78]
mov edi, dword [ebx + 0x7c]
push 9
call fcn.100b554a
add esp, 4
mov ebx, eax
push ebx
push 1
push 9
mov byte [ebx], 0x13
mov dword [ebx + 1], esi
mov dword [ebx + 5], edi
call fcn.1003b7d0
push ebx
call fcn.100b4f0b
mov esi, dword [esp + 0x1c]
add esp, 4
mov byte [esi + 0x70], 0
mov dword [esi + 0x6c], 0
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret