Function at 0x10024930
Capabilities:
Allocate or change rwx memory
Check for time delay via gettickcount
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x1008600c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x1008da28], 0
push ebx
push esi
push edi
mov ebx, ecx
jne 0x1002495d
call fcn.10024570
mov dword [0x1008da28], 1
call fcn.1001cfd0
mov ecx, dword [0x1008c838]
test ecx, ecx
jne 0x10024978
mov dword [0x1008c154], 0x32
jmp 0x100249ac
cmp ecx, 1
jne 0x10024989
mov dword [0x1008c154], 6
jmp 0x100249ac
cmp ecx, 2
jne 0x1002499a
mov dword [0x1008c154], 5
jmp 0x100249ac
mov eax, dword [0x1008c154]
xor edx, edx
cmp ecx, 3
cmove eax, edx
mov dword [0x1008c154], eax
call fcn.1001aee0
call fcn.1001ac10
mov ecx, ebx
call fcn.1001b050
call fcn.100224c0
mov ecx, ebx
call fcn.1001cc80
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp dword [eax], 0
je 0x10024a7f
cmp dword [0x1008bf6c], 0
jne 0x10024a48
cmp dword [0x10088720], 0
jne 0x10024a48
cmp dword [0x1008de70], 0
jne 0x10024a48
cmp dword [0x1008d10c], 0
jne 0x10024a48
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024ab9
lea eax, [ebp - 0xc]
push eax
push 0x40
push 1
push edi
call esi
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0xc]
jmp 0x10024ab1
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024ab9
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push edi
call esi
lea eax, [ebp - 0x10]
mov byte [edi], 0xcc
push eax
push dword [ebp - 0x10]
jmp 0x10024ab4
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024ab9
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
mov byte [edi], 0x55
push 1
push edi
call esi
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024b14
cmp dword [0x1008c7fc], 0
jne 0x10024ae4
cmp dword [0x1008d0d4], 0
je 0x10024b14
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024b4e
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024b42
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024b4e
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x6a
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 1
push edi
call esi
mov ecx, ebx
call fcn.1001f8a0
mov ecx, ebx
call fcn.1001e610
mov ecx, ebx
call fcn.1001f130
mov ecx, ebx
call fcn.1001eb90
call fcn.1001edd0
call fcn.1001eed0
call fcn.10021890
call fcn.10021c30
call fcn.10021f60
call fcn.10021780
call fcn.100227d0
cmp dword [0x1008bfa0], 0
je 0x10024c3b
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024c3b
push 0x20
mov dword [0x1008cacc], 0x10012810
call fcn.10012810
cwde
shr eax, 0x10
test eax, eax
je 0x10024c34
cmp byte [0x1008e308], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x10024bf5
cmp dword [0x1008e30c], 0
je 0x10024c3b
call edi
mov ecx, dword [0x1008e30c]
inc ecx
cmp ecx, eax
ja 0x10024c3b
mov byte [0x1008e308], 1
call edi
mov ecx, dword [0x1008c3f4]
mov dword [0x1008e30c], eax
mov eax, dword [0x1008877c]
add eax, 0x154
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024c76
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 3
jmp 0x10024c6a
mov byte [0x1008e308], 0
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x154
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024c76
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x44
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 1
push edi
call esi
call fcn.100220d0
call fcn.10022180
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x168
push eax
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
je 0x10024d1f
cmp dword [0x1008de3c], 1
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
mov edx, dword [ecx]
jne 0x10024cf1
add eax, 0x1c
push eax
call dword [edx + 4]
mov ecx, dword [0x1008c3f4]
cmp dword [eax], 0
mov edx, dword [ecx]
mov eax, dword [0x1008877c]
je 0x10024cf1
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024d1f
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x66
jmp 0x10024d13
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024d1f
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x46
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 1
push edi
call esi
call fcn.10022be0
call fcn.10020020
call fcn.1001ff60
cmp dword [0x1008c39c], 0
jle 0x10024dcb
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024dcb
mov eax, dword [0x1008c39c]
cmp eax, 1
jne 0x10024d6a
mov dword [0x100884f8], 0x42c80000
jmp 0x10024d9b
cmp eax, 2
jne 0x10024d7b
mov dword [0x100884f8], 0x42dc0000
jmp 0x10024d9b
cmp eax, 3
jne 0x10024d8c
mov dword [0x100884f8], 0x42f00000
jmp 0x10024d9b
cmp eax, 4
jne 0x10024d9b
mov dword [0x100884f8], 0x42fa0000
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024e05
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024df9
mov ecx, dword [0x1008c3f4]
mov eax, dword [0x1008877c]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024e05
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x68
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 1
push edi
call esi
call fcn.10022a30
call fcn.1001efd0
call fcn.10022b20
call fcn.10022600
call fcn.100222f0
call fcn.10022390
call fcn.10023870
call fcn.10023580
call fcn.10023ac0
mov ecx, ebx
call fcn.10023900
call fcn.10022d20
call fcn.10023460
call fcn.10023100
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1005c8e9
mov esp, ebp
pop ebp
ret