Function at 0x48a64c
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x18], eax
push 0x48ad08
call sub.KERNEL32.DLL_GetModuleHandleA_1
mov esi, eax
lea eax, [esi + 0xaae60]
mov dword [ebp - 0x14], eax
cmp esi, dword [0x49f4dc]
jae 0x48a68d
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x49f4dc]
jbe 0x48a68d
mov eax, dword [0x49f4dc]
sub eax, 4
mov dword [ebp - 0x14], eax
push 0x48ad14
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a6a6
test ebx, ebx
jge 0x48acfc
push 0x48ad20
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x48acfc
mov dword [0x4a11b4], edi
push 0x48ad28
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 8], eax
push 0x48ad38
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0xc], eax
push 0x48ad48
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a121c], eax
push 0x48ad54
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1218], eax
push 0x48ad60
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1210], eax
push 0x48ad74
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1214], eax
push 0x48ad88
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a120c], eax
push 0x48ad94
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1208], eax
push 0x48ada4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1200], eax
push 0x48adb0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1204], eax
push 0x48adbc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1220], eax
push 0x48add0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1224], eax
push 0x48ade0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1228], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
push 0x48adf0
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a7af
test ebx, ebx
jge 0x48acfc
push 0x48adfc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11b8], eax
push 0x48ae0c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11bc], eax
push 0x48ae1c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c0], eax
push 0x48ae2c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11b8], 0
je 0x48acfc
cmp dword [0x4a11bc], 0
je 0x48acfc
push 0x48ad08
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a828
test ebx, ebx
jge 0x48acfc
push 0x48ae3c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e4], eax
push 0x48ae50
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e8], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
mov eax, 0x447f38
test eax, eax
je 0x48acfc
cmp dword [0x4a11e4], 0
je 0x48acfc
push 0x48ae70
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a881
test ebx, ebx
jge 0x48acfc
push 0x48ae7c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d4], eax
push 0x48ae88
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d8], eax
push 0x48ae98
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11dc], eax
push 0x48aeb0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d0], eax
push 0x48aec0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11f4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11d4], 0
je 0x48acfc
cmp dword [0x4a11d8], 0
je 0x48acfc
cmp dword [0x4a11dc], 0
je 0x48acfc
cmp dword [0x4a11d0], 0
je 0x48acfc
push 0x48aed0
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
push 0x48aedc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e0], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11e0], 0
je 0x48acfc
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jae 0x48acfc
mov byte [ebp - 0x21], 0
xor edx, edx
push ebp
push 0x48acd0
push dword fs:[edx]
mov dword fs:[edx], esp
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_IsBadReadPtr
test eax, eax
je 0x48a973
mov byte [ebp - 0x21], 1
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a121c]
jne 0x48a9ef
xor edx, edx
push ebp
push 0x48a9e0
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489570
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48a9d3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a120c]
jne 0x48aa6b
xor edx, edx
push ebp
push 0x48aa5c
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489230
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48aa4f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1208]
jne 0x48aae7
xor edx, edx
push ebp
push 0x48aad8
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x4891a4
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48aacb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1204]
jne 0x48ab63
xor edx, edx
push ebp
push 0x48ab54
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x48917c
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48ab47
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1200]
jne 0x48abdf
xor edx, edx
push ebp
push 0x48abd0
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489128
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48abc3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1220]
jne 0x48ac55
xor edx, edx
push ebp
push 0x48ac49
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x48962c
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48ac3f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1224]
jne 0x48acc6
xor edx, edx
push ebp
push 0x48acbc
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489654
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x1c]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
jne 0x48acb2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acc6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48acde
cmp byte [ebp - 0x21], 0
je 0x48aced
push ebp
call fcn.0048a614
pop ecx
jmp 0x48acf0
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jb 0x48a949
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret