Function at 0x10024a60
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 [0x1008a00c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x10091a30], 0
push ebx
push esi
push edi
mov ebx, ecx
jne 0x10024a8d
call fcn.100246a0
mov dword [0x10091a30], 1
call fcn.1001d0e0
mov ecx, dword [0x10090840]
test ecx, ecx
jne 0x10024aa8
mov dword [0x10090154], 0x32
jmp 0x10024adc
cmp ecx, 1
jne 0x10024ab9
mov dword [0x10090154], 6
jmp 0x10024adc
cmp ecx, 2
jne 0x10024aca
mov dword [0x10090154], 5
jmp 0x10024adc
mov eax, dword [0x10090154]
xor edx, edx
cmp ecx, 3
cmove eax, edx
mov dword [0x10090154], eax
call fcn.10012620
test eax, eax
je 0x10024b3e
push 0x75
mov dword [0x10090ad4], 0x10012930
call fcn.10012930
cwde
shr eax, 0x10
test eax, eax
je 0x10024b37
cmp byte [0x100925b8], 0
je 0x10024b1e
cmp dword [0x100925bc], 0
je 0x10024b3e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x100925bc], eax
ja 0x10024b3e
xor eax, eax
mov byte [0x100925b8], 1
cmp dword [0x1008ff68], eax
sete al
mov dword [0x1008ff68], eax
jmp 0x10024b3e
mov byte [0x100925b8], 0
call fcn.1001aff0
call fcn.1001ad20
mov ecx, ebx
call fcn.1001b160
call fcn.100225e0
mov ecx, ebx
call fcn.1001cd90
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
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 0x10024c11
cmp dword [0x1008ff6c], 0
jne 0x10024bda
cmp dword [0x1008c720], 0
jne 0x10024bda
cmp dword [0x10091e78], 0
jne 0x10024bda
cmp dword [0x10091114], 0
jne 0x10024bda
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024c4b
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 0x10024c43
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024c4b
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 0x10024c46
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024c4b
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 [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024ca6
cmp dword [0x100907fc], 0
jne 0x10024c76
cmp dword [0x100910dc], 0
je 0x10024ca6
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024ce0
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024cd4
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024ce0
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.1001f9c0
mov ecx, ebx
call fcn.1001e720
mov ecx, ebx
call fcn.1001f250
mov ecx, ebx
call fcn.1001eca0
call fcn.1001eee0
call fcn.1001eff0
call fcn.100219b0
call fcn.10021d50
call fcn.10022080
call fcn.100218a0
call fcn.100228f0
cmp dword [0x1008ffa0], 0
je 0x10024dd5
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024dd5
push 0x20
mov dword [0x10090ad4], 0x10012930
call fcn.10012930
cwde
shr eax, 0x10
test eax, eax
je 0x10024dce
cmp byte [0x10092310], 0
je 0x10024d89
cmp dword [0x10092314], 0
je 0x10024dd5
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov ecx, dword [0x10092314]
inc ecx
cmp ecx, eax
ja 0x10024dd5
jmp 0x10024d8f
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x10092310], 1
call edi
mov ecx, dword [0x100903f4]
mov dword [0x10092314], eax
mov eax, dword [0x1008c77c]
add eax, 0x154
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024e10
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 3
jmp 0x10024e04
mov byte [0x10092310], 0
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x154
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024e10
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.100221f0
call fcn.100222a0
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x168
push eax
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
je 0x10024eb9
cmp dword [0x10091e44], 1
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
mov edx, dword [ecx]
jne 0x10024e8b
add eax, 0x1c
push eax
call dword [edx + 4]
mov ecx, dword [0x100903f4]
cmp dword [eax], 0
mov edx, dword [ecx]
mov eax, dword [0x1008c77c]
je 0x10024e8b
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024eb9
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x66
jmp 0x10024ead
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x10024eb9
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.10022d00
call fcn.10020140
call fcn.10020080
cmp dword [0x1009039c], 0
jle 0x10024f65
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024f65
mov eax, dword [0x1009039c]
cmp eax, 1
jne 0x10024f04
mov dword [0x1008c4f8], 0x42c80000
jmp 0x10024f35
cmp eax, 2
jne 0x10024f15
mov dword [0x1008c4f8], 0x42dc0000
jmp 0x10024f35
cmp eax, 3
jne 0x10024f26
mov dword [0x1008c4f8], 0x42f00000
jmp 0x10024f35
cmp eax, 4
jne 0x10024f35
mov dword [0x1008c4f8], 0x42fa0000
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024f9f
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024f93
mov ecx, dword [0x100903f4]
mov eax, dword [0x1008c77c]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024f9f
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.10022b50
call fcn.1001f0f0
call fcn.10022c40
call fcn.10022720
call fcn.10022410
call fcn.100224b0
call fcn.100239a0
call fcn.100236b0
call fcn.10023bf0
mov ecx, ebx
call fcn.10023a30
call fcn.10022e50
call fcn.10023590
call fcn.10023230
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1005f409
mov esp, ebp
pop ebp
ret