Function at 0x10005fc0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10a0
call fcn.10032c80
mov eax, dword [0x1003f00c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword fs:[0x2c]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push esi
mov esi, dword [0x1003f8dc]
mov dword [ebp - 0x1094], ecx
push edi
mov edi, edx
mov ecx, dword [eax + esi*4]
mov eax, dword [0x10112098]
mov dword [ebp - 0x10a0], edi
mov dword [ebp - 0x1098], ecx
cmp eax, dword [ecx + 4]
jle 0x10006050
push 0x10112098
call fcn.10031abc
add esp, 4
cmp dword [0x10112098], 0xffffffff
jne 0x10006050
cmp dword [0x1003f024], 0xffffffff
jne 0x10006043
lea eax, [ebp - 0x1030]
push eax
call ebx
mov eax, dword [ebp - 0x102c]
mov dword [0x1003f024], eax
push 0x10112098
call fcn.10031a72
add esp, 4
mov ecx, dword [ebp + 8]
mov edx, 1
mov dword [ebp - 0x1090], edx
test ecx, ecx
je 0x100063e0
nop word [eax + eax]
mov edx, dword [ebp - 0x1098]
mov esi, 0x1000
mov eax, dword [0x10112090]
cmp ecx, esi
cmovb esi, ecx
mov ecx, esi
mov dword [ebp - 0x109c], esi
mov dword [ebp - 0x1084], ecx
cmp eax, dword [edx + 4]
jle 0x100060e7
push 0x10112090
call fcn.10031abc
add esp, 4
cmp dword [0x10112090], 0xffffffff
jne 0x100060e1
mov eax, dword [0x1003f024]
cmp eax, 0xffffffff
jne 0x100060cf
lea eax, [ebp - 0x105c]
push eax
call ebx
mov eax, dword [ebp - 0x1058]
mov dword [0x1003f024], eax
push 0x10112090
mov dword [0x1011208c], eax
call fcn.10031a72
add esp, 4
mov ecx, dword [ebp - 0x1084]
mov dword [ebp - 0x1008], 0
lea ebx, [ebp - 0x1004]
mov dword [ebp - 0x1088], 0
mov eax, 1
test esi, esi
je 0x1000620a
nop
mov esi, dword [0x1011208c]
xor edx, edx
mov eax, edi
mov dword [ebp - 0x108c], 1
div esi
sub esi, edx
cmp ecx, esi
cmovle esi, ecx
test edi, edi
je 0x1000618e
push 0x1c
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1010], 0
xorps xmm0, xmm0
push eax
push edi
movups xmmword [ebp - 0x1028], xmm0
movq qword [ebp - 0x1018], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x1000618e
cmp dword [ebp - 0x1018], 0x1000
jne 0x1000618e
test byte [ebp - 0x1014], 0xee
je 0x1000618e
mov ecx, dword [ebp - 0x101c]
cmp esi, ecx
ja 0x1000618e
mov eax, edi
sub ecx, esi
sub eax, dword [ebp - 0x1028]
cmp eax, ecx
jbe 0x100061bd
lea eax, [ebp - 0x1008]
push eax
push 0x40
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x100061b3
push esi
push eax
push ebx
mov dword [ebp - 0x108c], eax
call sub.VCRUNTIME140.dll_memset
jmp 0x100061c5
mov dword [ebp - 0x1088], 1
push esi
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x1088], 0
je 0x100061e6
lea eax, [ebp - 0x1034]
push eax
push dword [ebp - 0x1008]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x1084]
add ebx, esi
add edi, esi
sub ecx, esi
mov dword [ebp - 0x1084], ecx
jne 0x10006110
mov eax, dword [ebp - 0x108c]
mov esi, dword [ebp - 0x109c]
mov edx, dword [ebp - 0x1098]
xor ecx, ecx
test eax, eax
mov eax, dword [0x10112094]
cmovne ecx, dword [ebp - 0x1090]
mov dword [ebp - 0x1090], ecx
mov ecx, esi
mov dword [ebp - 0x1084], ecx
cmp eax, dword [edx + 4]
jle 0x10006286
push 0x10112094
call fcn.10031abc
add esp, 4
cmp dword [0x10112094], 0xffffffff
jne 0x10006280
mov eax, dword [0x1003f024]
cmp eax, 0xffffffff
jne 0x1000626e
lea eax, [ebp - 0x1080]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x107c]
mov dword [0x1003f024], eax
push 0x10112094
mov dword [0x10112088], eax
call fcn.10031a72
add esp, 4
mov ecx, dword [ebp - 0x1084]
mov edi, dword [ebp - 0x1094]
lea ebx, [ebp - 0x1004]
mov dword [ebp - 0x100c], 0
mov eax, 1
mov dword [ebp - 0x108c], 0
test esi, esi
je 0x100063a5
mov esi, dword [0x10112088]
xor edx, edx
mov eax, edi
mov dword [ebp - 0x1088], 1
div esi
sub esi, edx
cmp ecx, esi
cmovle esi, ecx
test edi, edi
je 0x10006331
push 0x1c
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1010], 0
xorps xmm0, xmm0
push eax
push edi
movups xmmword [ebp - 0x1028], xmm0
movq qword [ebp - 0x1018], xmm0
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x10006331
cmp dword [ebp - 0x1018], 0x1000
jne 0x10006331
test byte [ebp - 0x1014], 0xcc
je 0x10006331
mov ecx, dword [ebp - 0x101c]
cmp esi, ecx
ja 0x10006331
mov eax, edi
sub ecx, esi
sub eax, dword [ebp - 0x1028]
cmp eax, ecx
jbe 0x10006358
lea eax, [ebp - 0x100c]
push eax
push 0x40
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1000634e
mov dword [ebp - 0x1088], eax
jmp 0x10006363
mov dword [ebp - 0x108c], 1
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x108c], 0
je 0x10006381
lea eax, [ebp - 0x1038]
push eax
push dword [ebp - 0x100c]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x1084]
add edi, esi
add ebx, esi
sub ecx, esi
mov dword [ebp - 0x1084], ecx
jne 0x100062b3
mov eax, dword [ebp - 0x1088]
mov esi, dword [ebp - 0x109c]
mov ecx, dword [ebp + 8]
xor edx, edx
mov edi, dword [ebp - 0x10a0]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmovne edx, dword [ebp - 0x1090]
sub ecx, esi
add dword [ebp - 0x1094], esi
add edi, esi
mov dword [ebp - 0x1090], edx
mov dword [ebp + 8], ecx
mov dword [ebp - 0x10a0], edi
test ecx, ecx
jne 0x10006070
mov ecx, dword [ebp - 4]
mov eax, edx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10031912
mov esp, ebp
pop ebp
ret