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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x10042fd0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
mov al, byte [ebx]
push esi
cmp al, 0xc2
je 0x1002d384
mov esi, 2
cmp al, 0xc4
jne 0x1002d389
mov esi, 3
mov cl, byte [esi + ebx]
cmp al, 0xc2
je 0x1002d399
cmp al, 0xc4
mov eax, 3
jne 0x1002d39e
mov eax, 4
mov al, byte [eax + ebx]
movzx ecx, cl
add ecx, 0xfffffff2
cmp ecx, 0xf1
ja case.0x1002d3ba.15
movzx ecx, byte [ecx + 0x1002d8b0]
jmp dword [ecx*4 + 0x1002d85c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 4]
mov dword [0x101e486c], eax
jmp case.0x1002d3ba.15
mov edx, dword [ebx + 0xc]
push edx
push ebx
mov eax, 0x678220
call eax
add esp, 8
jmp case.0x1002d3ba.15
mov esi, ebx
call fcn.1002db90
jmp case.0x1002d3ba.15
mov ecx, dword [ebx + 0xc]
mov dword [0x101e47c0], ecx
jmp case.0x1002d3ba.15
movzx edx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl dx, 8
or edx, eax
and edx, 0x7fff
cmp dword [0x101e4794], edx
jne case.0x1002d3ba.15
mov dword [0x101e47a8], 0
jmp case.0x1002d3ba.15
cmp byte [ebx + 3], 0xfe
jne 0x1002d440
mov ecx, dword [ebx + 0xc]
mov dword [0x101e47ac], ecx
cmp byte [ebx + 3], 0xff
jne case.0x1002d3ba.15
cmp dword [0x101e47a8], 0
je case.0x1002d3ba.15
mov edx, dword [ebx + 0xc]
mov dword [0x101e47a8], edx
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002dc30
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002dc70
jmp case.0x1002d3ba.15
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov dword [0x101df6f4], eax
mov dword [0x101df6f8], ecx
mov dword [0x101df6fc], edx
jmp case.0x1002d3ba.15
movzx eax, byte [ebx + 3]
movzx ecx, byte [ebx + 4]
shl ax, 8
or eax, ecx
and eax, 0x7fff
cmp dword [0x101e4794], eax
jne case.0x1002d3ba.15
mov edx, dword [ebx + 8]
mov dword [0x101e47a0], edx
jmp case.0x1002d3ba.15
movzx eax, al
sub eax, 0
je 0x1002d4ea
dec eax
jne case.0x1002d3ba.15
movzx eax, byte [ebx + 4]
push eax
call fcn.1002f000
add esp, 4
jmp case.0x1002d3ba.15
movzx edx, word [ebx + 0x14]
movzx ecx, word [ebx + 0x16]
push edx
lea eax, [ebx + 4]
mov dword [0x10043074], ecx
call fcn.1002ef80
add esp, 4
jmp case.0x1002d3ba.15
cmp al, 4
jne case.0x1002d3ba.15
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [0x101dbabc], eax
mov dword [0x101dbab8], ecx
jmp case.0x1002d3ba.15
cmp al, 0x12
jne case.0x1002d3ba.15
mov edx, dword [ebx + 8]
fild dword [ebx + 8]
test edx, edx
jns 0x1002d53f
fadd qword [0x1003d658]
movzx eax, word [ebx + 6]
fstp qword [eax*8 + 0x101d8d38]
movzx ecx, word [ebx + 4]
movzx edx, word [ebx + 6]
mov dword [edx*4 + 0x101d8c08], ecx
jmp case.0x1002d3ba.15
movzx eax, al
sub eax, 0
je 0x1002d589
dec eax
je 0x1002d57c
dec eax
jne case.0x1002d3ba.15
mov eax, ebx
call fcn.1002dcd0
jmp case.0x1002d3ba.15
mov al, byte [ebx + 4]
call fcn.1002f090
jmp case.0x1002d3ba.15
movzx eax, word [ebx + 0xc]
movzx ecx, byte [ebx + 5]
shl cx, 8
mov dword [0x10043074], eax
movzx eax, byte [ebx + 6]
movzx edx, cx
or edx, eax
mov dword [0x101e4794], edx
jmp case.0x1002d3ba.15
movzx eax, al
cmp eax, 0xf5
ja case.0x1002d3ba.15
movzx ecx, byte [eax + 0x1002d9f8]
jmp dword [ecx*4 + 0x1002d9a4]
call fcn.1002f190
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002dd30
jmp case.0x1002d3ba.15
mov edx, dword [ebx + 0x18]
mov dword [0x101e47a8], edx
mov eax, dword [ebx + 0x1c]
mov dword [0x101e47b0], eax
mov ecx, dword [ebx + 0x20]
mov dword [0x101e47b8], ecx
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002dfb0
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002e000
jmp case.0x1002d3ba.15
mov edx, dword [ebx + 8]
mov dword [0x101e47a8], edx
mov eax, dword [ebx + 0xc]
mov dword [0x101e47c0], eax
jmp case.0x1002d3ba.15
mov byte [0x76b94c], 1
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002e060
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
mov eax, ebx
call fcn.1002e100
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
push ebx
call fcn.1002e260
add esp, 4
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
call fcn.1002db40
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
push ebx
call fcn.1002e710
add esp, 4
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
call fcn.10003290
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
push ebx
call fcn.10014750
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
call fcn.1002d2b0
jmp case.0x1002d3ba.15
call fcn.1002d310
jmp case.0x1002d3ba.15
call fcn.1002d070
jmp case.0x1002d3ba.15
call fcn.1002d270
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10036e30
mov esp, ebp
pop ebp
ret
mov eax, ebx
call fcn.10029c40
jmp case.0x1002d3ba.15
movzx eax, al
sub eax, 0
je 0x1002d76f
dec eax
je 0x1002d765
sub eax, 2
jne case.0x1002d3ba.15
mov ecx, dword [0x101f0854]
mov byte [ecx + 0xa4], al
jmp case.0x1002d3ba.15
call fcn.1002d1b0
jmp case.0x1002d3ba.15
mov edx, dword [0x101f0854]
lea ecx, [ebx + 5]
mov byte [edx + 0xa4], 1
call fcn.100239b0
jmp case.0x1002d3ba.15
movzx eax, al
add eax, 0xfffffff2
cmp eax, 0x22
ja case.0x1002d3ba.15
movzx eax, byte [eax + 0x1002db10]
jmp dword [eax*4 + 0x1002daf0]
mov eax, ebx
call fcn.100158d0
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.100335e0
jmp case.0x1002d3ba.15
push ebx
call fcn.100334a0
jmp case.0x1002d3ba.15
cmp byte [ebx + 4], 0
je case.0x1002d3ba.15
call fcn.10033460
jmp case.0x1002d3ba.15
mov eax, ebx
call fcn.1002d0d0
jmp case.0x1002d3ba.15
mov byte [0x101e7b4e], 1
jmp case.0x1002d3ba.15
mov byte [0x101e7b4e], 0
jmp case.0x1002d3ba.15
mov ecx, dword [ebx + 3]
mov edx, dword [ebx + 7]
mov ax, word [ebx + 0xb]
mov dword [ebp - 0x10], ecx
push 8
lea ecx, [ebx + 0xd]
mov dword [ebp - 0xc], edx
push ecx
lea edx, [ebp - 0x10]
mov word [ebp - 8], ax
push edx
mov eax, 0x53ec70
mov byte [ebp - 6], 0
call eax
add esp, 0xc
jmp case.0x1002d3ba.15
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x101e7a14]
mov dword [0x101e7a0c], 3
mov dword [0x101e7a10], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
movzx eax, byte [ebp + 8]
push ecx
push edx
push ebx
push eax
mov ecx, 0x69c3c0
call ecx
mov ecx, dword [ebp - 4]
add esp, 0x10
pop esi
xor ecx, ebp
pop ebx
call fcn.10036e30
mov esp, ebp
pop ebp
ret