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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov eax, dword [0x49eea4]
cmp dword [eax], 2
sete al
and eax, 0x7f
add eax, 0xa
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
push 0x48b934
call sub.KERNEL32.DLL_GetModuleHandleA_1
mov esi, eax
lea eax, [esi + 0x927c0]
mov dword [ebp - 0x14], eax
cmp esi, dword [0x49f4dc]
jae 0x48b021
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x49f4dc]
jbe 0x48b021
mov eax, dword [0x49f4dc]
sub eax, 4
mov dword [ebp - 0x14], eax
push 0x48b940
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b03a
test ebx, ebx
jge 0x48b928
push 0x48b94c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x48b928
mov dword [0x4a11b4], edi
push 0x48b954
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 8], eax
push 0x48b964
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0xc], eax
push 0x48b974
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a121c], eax
push 0x48b980
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1218], eax
push 0x48b98c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1210], eax
push 0x48b9a0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1214], eax
push 0x48b9b4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a120c], eax
push 0x48b9c0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1208], eax
push 0x48b9d0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1200], eax
push 0x48b9dc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1204], eax
push 0x48b9e8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1220], eax
push 0x48b9fc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1224], eax
push 0x48ba0c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1228], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
push 0x48ba1c
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b143
test ebx, ebx
jge 0x48b928
push 0x48ba28
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11b8], eax
push 0x48ba38
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11bc], eax
push 0x48ba48
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c0], eax
push 0x48ba58
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11b8], 0
je 0x48b928
cmp dword [0x4a11bc], 0
je 0x48b928
push 0x48ba68
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b1bc
test ebx, ebx
jge 0x48b928
push 0x48ba74
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e4], eax
push 0x48ba88
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 0x48b928
cmp dword [0x4a11e4], 0
je 0x48b928
push 0x48baa8
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b215
test ebx, ebx
jge 0x48b928
push 0x48bab4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d4], eax
push 0x48bac0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d8], eax
push 0x48bad0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11dc], eax
push 0x48bae8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d0], eax
push 0x48baf8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11f4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11d4], 0
je 0x48b928
cmp dword [0x4a11d8], 0
je 0x48b928
cmp dword [0x4a11dc], 0
je 0x48b928
cmp dword [0x4a11d0], 0
je 0x48b928
push 0x48bb08
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
push 0x48bb14
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e0], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11e0], 0
je 0x48b928
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jae 0x48b928
mov byte [ebp - 0x25], 0
xor edx, edx
push ebp
push 0x48b8fc
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 0x48b307
mov byte [ebp - 0x25], 1
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a11f4]
jne 0x48b385
xor edx, edx
push ebp
push 0x48b376
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x488e10
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b369
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a121c]
jne 0x48b403
xor edx, edx
push ebp
push 0x48b3f4
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b3e7
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1218]
jne 0x48b481
xor edx, edx
push ebp
push 0x48b472
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489544
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b465
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1210]
jne 0x48b50a
mov edx, dword [0x49eea4]
cmp dword [edx], 2
jne 0x48b50a
xor edx, edx
push ebp
push 0x48b4fb
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x4893d0
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b4ee
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1214]
jne 0x48b588
xor edx, edx
push ebp
push 0x48b579
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
push edx
push 0x40
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x489494
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b56c
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a120c]
jne 0x48b606
xor edx, edx
push ebp
push 0x48b5f7
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b5ea
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1208]
jne 0x48b684
xor edx, edx
push ebp
push 0x48b675
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b668
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1204]
jne 0x48b702
xor edx, edx
push ebp
push 0x48b6f3
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b6e6
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1200]
jne 0x48b780
xor edx, edx
push ebp
push 0x48b771
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b764
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1220]
jne 0x48b7fe
xor edx, edx
push ebp
push 0x48b7ef
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x20]
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 - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b7e2
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, dword [0x4a1224]
jne 0x48b87c
xor edx, edx
push ebp
push 0x48b870
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x20]
push eax
push 0x40
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x4896f8
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b863
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, dword [0x4a1228]
jne 0x48b8f2
xor edx, edx
push ebp
push 0x48b8e8
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x20]
push eax
push 0x40
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_VirtualProtect
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x4897c8
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x20]
push edx
push 4
push eax
call sub.KERNEL32.DLL_VirtualProtect
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x48b8de
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 0x48b928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b8f2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b90a
cmp byte [ebp - 0x25], 0
je 0x48b919
push ebp
call fcn.0048af94
pop ecx
jmp 0x48b91c
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jb 0x48b2dd
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret