Function at 0x48a6f0
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 0x48adac
call sub.KERNEL32.DLL_GetModuleHandleA_1
mov esi, eax
lea eax, [esi + 0xaae60]
mov dword [ebp - 0x14], eax
cmp esi, dword [0x49f4dc]
jae 0x48a731
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x49f4dc]
jbe 0x48a731
mov eax, dword [0x49f4dc]
sub eax, 4
mov dword [ebp - 0x14], eax
push 0x48adb8
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a74a
test ebx, ebx
jge 0x48ada0
push 0x48adc4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x48ada0
mov dword [0x4a11b4], edi
push 0x48adcc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 8], eax
push 0x48addc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0xc], eax
push 0x48adec
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a121c], eax
push 0x48adf8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1218], eax
push 0x48ae04
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1210], eax
push 0x48ae18
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1214], eax
push 0x48ae2c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a120c], eax
push 0x48ae38
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1208], eax
push 0x48ae48
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1200], eax
push 0x48ae54
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1204], eax
push 0x48ae60
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1220], eax
push 0x48ae74
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1224], eax
push 0x48ae84
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1228], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
push 0x48ae94
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a853
test ebx, ebx
jge 0x48ada0
push 0x48aea0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11b8], eax
push 0x48aeb0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11bc], eax
push 0x48aec0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c0], eax
push 0x48aed0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11b8], 0
je 0x48ada0
cmp dword [0x4a11bc], 0
je 0x48ada0
push 0x48adac
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a8cc
test ebx, ebx
jge 0x48ada0
push 0x48aee0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e4], eax
push 0x48aef4
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 0x48ada0
cmp dword [0x4a11e4], 0
je 0x48ada0
push 0x48af14
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48a925
test ebx, ebx
jge 0x48ada0
push 0x48af20
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d4], eax
push 0x48af2c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d8], eax
push 0x48af3c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11dc], eax
push 0x48af54
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d0], eax
push 0x48af64
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11f4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11d4], 0
je 0x48ada0
cmp dword [0x4a11d8], 0
je 0x48ada0
cmp dword [0x4a11dc], 0
je 0x48ada0
cmp dword [0x4a11d0], 0
je 0x48ada0
push 0x48af74
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
push 0x48af80
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e0], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11e0], 0
je 0x48ada0
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jae 0x48ada0
mov byte [ebp - 0x21], 0
xor edx, edx
push ebp
push 0x48ad74
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 0x48aa17
mov byte [ebp - 0x21], 1
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a121c]
jne 0x48aa93
xor edx, edx
push ebp
push 0x48aa84
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], 0x489614
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 0x48aa77
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a120c]
jne 0x48ab0f
xor edx, edx
push ebp
push 0x48ab00
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], 0x4892d4
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 0x48aaf3
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1208]
jne 0x48ab8b
xor edx, edx
push ebp
push 0x48ab7c
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], 0x489248
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 0x48ab6f
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1204]
jne 0x48ac07
xor edx, edx
push ebp
push 0x48abf8
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], 0x489220
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 0x48abeb
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1200]
jne 0x48ac83
xor edx, edx
push ebp
push 0x48ac74
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], 0x4891cc
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 0x48ac67
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1220]
jne 0x48acf9
xor edx, edx
push ebp
push 0x48aced
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], 0x4896d0
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 0x48ace3
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1224]
jne 0x48ad6a
xor edx, edx
push ebp
push 0x48ad60
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], 0x4896f8
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 0x48ad56
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 0x48ada0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad6a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48ad82
cmp byte [ebp - 0x21], 0
je 0x48ad91
push ebp
call fcn.0048a6b8
pop ecx
jmp 0x48ad94
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jb 0x48a9ed
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret