Function at 0x10024c30
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x1007700c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x1007ea08]
test eax, eax
push ebx
mov ebx, ecx
mov ecx, 1
push esi
cmove eax, ecx
push edi
mov dword [0x1007ea08], eax
call fcn.1001d0a0
mov ecx, dword [0x1007d81c]
test ecx, ecx
jne 0x10024c74
mov dword [0x1007d138], 0x32
jmp 0x10024ca8
cmp ecx, 1
jne 0x10024c85
mov dword [0x1007d138], 6
jmp 0x10024ca8
cmp ecx, 2
jne 0x10024c96
mov dword [0x1007d138], 5
jmp 0x10024ca8
mov eax, dword [0x1007d138]
xor edx, edx
cmp ecx, 3
cmove eax, edx
mov dword [0x1007d138], eax
call fcn.1001afb0
call fcn.1001ace0
mov ecx, ebx
call fcn.1001b120
call fcn.100225b0
mov ecx, ebx
call fcn.1001cd50
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
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 0x10024d7b
cmp dword [0x1007cf50], 0
jne 0x10024d44
cmp dword [0x10079704], 0
jne 0x10024d44
cmp dword [0x1007ee50], 0
jne 0x10024d44
cmp dword [0x1007e0ec], 0
jne 0x10024d44
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024db5
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 0x10024dad
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024db5
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 0x10024db0
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0xfc
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024db5
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 [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024e10
cmp dword [0x1007d7e0], 0
jne 0x10024de0
cmp dword [0x1007e0b4], 0
je 0x10024e10
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024e4a
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x10024e3e
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x17c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10024e4a
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.1001f970
mov ecx, ebx
call fcn.1001e6e0
mov ecx, ebx
call fcn.1001f200
mov ecx, ebx
call fcn.1001ec60
call fcn.1001eea0
call fcn.1001efa0
call fcn.10021970
call fcn.10021d20
call fcn.10022050
call fcn.10021860
call fcn.100228c0
cmp dword [0x1007cf84], 0
je 0x10024f37
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x10024f37
push 0x20
mov dword [0x1007dab0], 0x10012810
call fcn.10012810
cwde
shr eax, 0x10
test eax, eax
je 0x10024f30
cmp byte [0x1007f2e8], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x10024ef1
cmp dword [0x1007f2ec], 0
je 0x10024f37
call edi
mov ecx, dword [0x1007f2ec]
inc ecx
cmp ecx, eax
ja 0x10024f37
mov byte [0x1007f2e8], 1
call edi
mov ecx, dword [0x1007d3d8]
mov dword [0x1007f2ec], eax
mov eax, dword [0x10079760]
add eax, 0x154
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024f72
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 3
jmp 0x10024f66
mov byte [0x1007f2e8], 0
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x154
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea edi, [eax + 2]
cmp edi, 0x1000
jbe 0x10024f72
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.100221c0
call fcn.10022270
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x168
push eax
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
je 0x1002501b
cmp dword [0x1007ee1c], 1
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
mov edx, dword [ecx]
jne 0x10024fed
add eax, 0x1c
push eax
call dword [edx + 4]
mov ecx, dword [0x1007d3d8]
cmp dword [eax], 0
mov edx, dword [ecx]
mov eax, dword [0x10079760]
je 0x10024fed
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x1002501b
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0x66
jmp 0x1002500f
add eax, 0x168
push eax
call dword [edx + 4]
lea edi, [eax + 3]
cmp edi, 0x1000
jbe 0x1002501b
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.10022cd0
call fcn.10020100
call fcn.10020030
cmp dword [0x1007d380], 0
jle 0x100250c7
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x1c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
cmp dword [eax], 0
je 0x100250c7
mov eax, dword [0x1007d380]
cmp eax, 1
jne 0x10025066
mov dword [0x100794dc], 0x42c80000
jmp 0x10025097
cmp eax, 2
jne 0x10025077
mov dword [0x100794dc], 0x42dc0000
jmp 0x10025097
cmp eax, 3
jne 0x10025088
mov dword [0x100794dc], 0x42f00000
jmp 0x10025097
cmp eax, 4
jne 0x10025097
mov dword [0x100794dc], 0x42fa0000
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10025101
lea eax, [ebp - 8]
push eax
push 0x40
push 1
push edi
call esi
mov byte [edi], 0xcc
jmp 0x100250f5
mov ecx, dword [0x1007d3d8]
mov eax, dword [0x10079760]
add eax, 0x13c
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov edi, eax
cmp edi, 0x1000
jbe 0x10025101
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.10022b20
call fcn.1001f0a0
call fcn.10022c10
call fcn.100226f0
call fcn.100223e0
call fcn.10022480
call fcn.10023960
call fcn.10023670
call fcn.10023bb0
mov ecx, ebx
call fcn.100239f0
call fcn.10022e10
call fcn.10023550
call fcn.100231f0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100521c9
mov esp, ebp
pop ebp
ret