Function at 0x10024920
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 [0x1008000c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100879d0], 0
push ebx
push esi
push edi
mov ebx, ecx
jne 0x1002494d
call fcn.10024560
mov dword [0x100879d0], 1
call fcn.1001cfa0
mov ecx, dword [0x100867e0]
test ecx, ecx
jne 0x10024968
mov dword [0x100860fc], 0x32
jmp 0x1002499c
cmp ecx, 1
jne 0x10024979
mov dword [0x100860fc], 6
jmp 0x1002499c
cmp ecx, 2
jne 0x1002498a
mov dword [0x100860fc], 5
jmp 0x1002499c
mov eax, dword [0x100860fc]
xor edx, edx
cmp ecx, 3
cmove eax, edx
mov dword [0x100860fc], eax
call fcn.1001aeb0
call fcn.1001abe0
mov ecx, ebx
call fcn.1001b020
call fcn.100224b0
mov ecx, ebx
call fcn.1001cc50
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
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 0x10024a6f
cmp dword [0x10085f14], 0
jne 0x10024a38
cmp dword [0x100826c8], 0
jne 0x10024a38
cmp dword [0x10087e18], 0
jne 0x10024a38
cmp dword [0x100870b4], 0
jne 0x10024a38
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024aa9
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 0x10024aa1
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024aa9
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 0x10024aa4
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024aa9
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 [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024b04
cmp dword [0x100867a4], 0
jne 0x10024ad4
cmp dword [0x1008707c], 0
je 0x10024b04
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024b3e
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024b32
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024b3e
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.1001f880
mov ecx, ebx
call fcn.1001e5f0
mov ecx, ebx
call fcn.1001f110
mov ecx, ebx
call fcn.1001eb70
call fcn.1001edb0
call fcn.1001eeb0
call fcn.10021880
call fcn.10021c20
call fcn.10021f50
call fcn.10021770
call fcn.100227c0
cmp dword [0x10085f48], 0
je 0x10024c2b
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024c2b
push 0x20
mov dword [0x10086a7c], 0x100127f0
call fcn.100127f0
cwde
shr eax, 0x10
test eax, eax
je 0x10024c24
cmp byte [0x100882b0], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x10024be5
cmp dword [0x100882b4], 0
je 0x10024c2b
call edi
mov ecx, dword [0x100882b4]
inc ecx
cmp ecx, eax
ja 0x10024c2b
mov byte [0x100882b0], 1
call edi
mov ecx, dword [0x1008639c]
mov dword [0x100882b4], eax
mov eax, dword [0x10082724]
add eax, 0x154
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024c66
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 3
jmp 0x10024c5a
mov byte [0x100882b0], 0
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x154
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024c66
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.100220c0
call fcn.10022170
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x168
push eax
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
je 0x10024d0f
cmp dword [0x10087de4], 1
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
mov edx, dword [ecx]
jne 0x10024ce1
add eax, 0x1c
push eax
call dword [edx + 4]
mov ecx, dword [0x1008639c]
cmp dword [eax], 0
mov edx, dword [ecx]
mov eax, dword [0x10082724]
je 0x10024ce1
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024d0f
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x66
jmp 0x10024d03
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024d0f
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.10022bd0
call fcn.10020010
call fcn.1001ff40
cmp dword [0x10086344], 0
jle 0x10024dbb
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024dbb
mov eax, dword [0x10086344]
cmp eax, 1
jne 0x10024d5a
mov dword [0x100824a0], 0x42c80000
jmp 0x10024d8b
cmp eax, 2
jne 0x10024d6b
mov dword [0x100824a0], 0x42dc0000
jmp 0x10024d8b
cmp eax, 3
jne 0x10024d7c
mov dword [0x100824a0], 0x42f00000
jmp 0x10024d8b
cmp eax, 4
jne 0x10024d8b
mov dword [0x100824a0], 0x42fa0000
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024df5
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024de9
mov ecx, dword [0x1008639c]
mov eax, dword [0x10082724]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024df5
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.10022a20
call fcn.1001efb0
call fcn.10022b10
call fcn.100225f0
call fcn.100222e0
call fcn.10022380
call fcn.10023860
call fcn.10023570
call fcn.10023ab0
mov ecx, ebx
call fcn.100238f0
call fcn.10022d10
call fcn.10023450
call fcn.100230f0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10057a19
mov esp, ebp
pop ebp
ret