Function at 0x48af28
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 0x48b890
call sub.KERNEL32.DLL_GetModuleHandleA_1
mov esi, eax
lea eax, [esi + 0x927c0]
mov dword [ebp - 0x14], eax
cmp esi, dword [0x49f4dc]
jae 0x48af7d
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x49f4dc]
jbe 0x48af7d
mov eax, dword [0x49f4dc]
sub eax, 4
mov dword [ebp - 0x14], eax
push 0x48b89c
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48af96
test ebx, ebx
jge 0x48b884
push 0x48b8a8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x48b884
mov dword [0x4a11b4], edi
push 0x48b8b0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 8], eax
push 0x48b8c0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0xc], eax
push 0x48b8d0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a121c], eax
push 0x48b8dc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1218], eax
push 0x48b8e8
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1210], eax
push 0x48b8fc
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1214], eax
push 0x48b910
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a120c], eax
push 0x48b91c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1208], eax
push 0x48b92c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1200], eax
push 0x48b938
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1204], eax
push 0x48b944
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1220], eax
push 0x48b958
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1224], eax
push 0x48b968
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a1228], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
push 0x48b978
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b09f
test ebx, ebx
jge 0x48b884
push 0x48b984
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11b8], eax
push 0x48b994
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11bc], eax
push 0x48b9a4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c0], eax
push 0x48b9b4
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11c4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11b8], 0
je 0x48b884
cmp dword [0x4a11bc], 0
je 0x48b884
push 0x48b9c4
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b118
test ebx, ebx
jge 0x48b884
push 0x48b9d0
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e4], eax
push 0x48b9e4
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 0x48b884
cmp dword [0x4a11e4], 0
je 0x48b884
push 0x48ba04
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
cmp ebx, 0x20
jg 0x48b171
test ebx, ebx
jge 0x48b884
push 0x48ba10
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d4], eax
push 0x48ba1c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d8], eax
push 0x48ba2c
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11dc], eax
push 0x48ba44
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11d0], eax
push 0x48ba54
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11f4], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11d4], 0
je 0x48b884
cmp dword [0x4a11d8], 0
je 0x48b884
cmp dword [0x4a11dc], 0
je 0x48b884
cmp dword [0x4a11d0], 0
je 0x48b884
push 0x48ba64
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
push 0x48ba70
push ebx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x4a11e0], eax
push ebx
call sub.KERNEL32.DLL_FreeLibrary
cmp dword [0x4a11e0], 0
je 0x48b884
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jae 0x48b884
mov byte [ebp - 0x25], 0
xor edx, edx
push ebp
push 0x48b858
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 0x48b263
mov byte [ebp - 0x25], 1
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a11f4]
jne 0x48b2e1
xor edx, edx
push ebp
push 0x48b2d2
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], 0x488d6c
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 0x48b2c5
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a121c]
jne 0x48b35f
xor edx, edx
push ebp
push 0x48b350
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], 0x489570
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 0x48b343
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1218]
jne 0x48b3dd
xor edx, edx
push ebp
push 0x48b3ce
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], 0x4894a0
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 0x48b3c1
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1210]
jne 0x48b466
mov edx, dword [0x49eea4]
cmp dword [edx], 2
jne 0x48b466
xor edx, edx
push ebp
push 0x48b457
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], 0x48932c
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 0x48b44a
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1214]
jne 0x48b4e4
xor edx, edx
push ebp
push 0x48b4d5
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], 0x4893f0
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 0x48b4c8
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a120c]
jne 0x48b562
xor edx, edx
push ebp
push 0x48b553
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], 0x489230
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 0x48b546
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1208]
jne 0x48b5e0
xor edx, edx
push ebp
push 0x48b5d1
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], 0x4891a4
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 0x48b5c4
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1204]
jne 0x48b65e
xor edx, edx
push ebp
push 0x48b64f
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], 0x48917c
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 0x48b642
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1200]
jne 0x48b6dc
xor edx, edx
push ebp
push 0x48b6cd
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], 0x489128
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 0x48b6c0
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
cmp edx, dword [0x4a1220]
jne 0x48b75a
xor edx, edx
push ebp
push 0x48b74b
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], 0x48962c
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 0x48b73e
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, dword [0x4a1224]
jne 0x48b7d8
xor edx, edx
push ebp
push 0x48b7cc
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], 0x489654
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 0x48b7bf
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
cmp eax, dword [0x4a1228]
jne 0x48b84e
xor edx, edx
push ebp
push 0x48b844
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], 0x489724
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 0x48b83a
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 0x48b884
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b84e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48b866
cmp byte [ebp - 0x25], 0
je 0x48b875
push ebp
call fcn.0048aef0
pop ecx
jmp 0x48b878
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jb 0x48b239
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret