Function at 0x4a1b90
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
mov eax, dword [0x50e018]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, ecx
push 0x40
lea ecx, [ebp - 0x164]
mov edi, edx
push 0
push ecx
mov dword [ebp - 0x188], esi
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x16c], 0
call sub.MSVCR100.dll_memset
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
add esp, 0xc
push 0
push 0x40
lea edx, [ebp - 0x164]
push edx
push edi
push esi
call ebx
test eax, eax
je 0x4a209d
push 0xf8
lea eax, [ebp - 0x124]
push 0
push eax
call sub.MSVCR100.dll_memset
mov edx, dword [ebp - 0x128]
add esp, 0xc
push 0
push 0xf8
lea ecx, [ebp - 0x124]
push ecx
lea eax, [edi + edx]
push eax
push esi
call ebx
test eax, eax
je 0x4a209d
mov ecx, 0x10b
cmp word [ebp - 0x10c], cx
je 0x4a1c5f
push 9
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x16c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a665a
mov esp, ebp
pop ebp
ret
movzx edx, word [ebp - 0x110]
mov eax, dword [ebp - 0x128]
xor ecx, ecx
lea eax, [edx + eax + 0x18]
xor edx, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x174], ecx
cmp dx, word [ebp - 0x11e]
jae 0x4a1d38
add eax, edi
mov dword [ebp - 0x168], eax
jmp 0x4a1ca8
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
xor ecx, ecx
mov edx, dword [ebp - 0x168]
push ecx
xor eax, eax
push 0x28
lea ecx, [ebp - 0x2c]
push ecx
push edx
push esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
call ebx
test eax, eax
je 0x4a209d
cmp dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x1c]
jne 0x4a1d04
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x20]
cmp edx, ecx
jb 0x4a1d04
lea ebx, [eax + ecx]
cmp edx, ebx
jae 0x4a1d04
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
add eax, dword [ebp - 0x18]
cmp dword [ebp - 0x170], eax
jae 0x4a1d15
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x174]
movzx edx, word [ebp - 0x11e]
add dword [ebp - 0x168], 0x28
inc eax
mov dword [ebp - 0x174], eax
cmp eax, edx
jb 0x4a1ca0
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xa0]
lea eax, [esi + esi*4]
add eax, eax
add eax, eax
mov dword [ebp - 0x184], eax
lea eax, [ecx + eax + 0x1b]
and eax, 0xfffffff8
mov ebx, esi
shl ebx, 4
add ebx, eax
xor ecx, ecx
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x170], ebx
test esi, esi
je 0x4a1da2
mov edx, dword [ebp - 0x194]
mov eax, dword [edx + ecx*4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4a1d80
sub eax, edi
add eax, 4
and eax, 0xfffffffc
inc ecx
add ebx, eax
cmp ecx, esi
jb 0x4a1d74
mov edi, dword [ebp - 0x190]
mov dword [ebp - 0x170], ebx
push ebx
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x178], eax
test eax, eax
je 0x4a209d
push ebx
push 0
push eax
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x100]
add eax, edi
add eax, dword [ebp - 0x104]
add esp, 0xc
add eax, dword [ebp - 0x108]
mov ecx, edi
add eax, dword [ebp - 0xf8]
cmp edi, eax
jae 0x4a1de8
mov ecx, eax
mov edi, dword [ebp - 0x188]
push ebx
call fcn.004a1a40
add esp, 4
mov dword [ebp - 0x198], eax
test eax, eax
je 0x4a208d
mov edx, dword [ebp - 0x190]
mov ecx, dword [ebp - 0xa4]
sub eax, edx
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x18c], 0
test ecx, ecx
je 0x4a1e55
mov eax, dword [ebp - 0xa0]
push 0
push eax
mov eax, dword [ebp - 0x184]
add eax, dword [ebp - 0x178]
add edx, ecx
push eax
push edx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x4a208d
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x174], 0
test esi, esi
je 0x4a1f8b
mov edi, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x178]
add eax, edi
lea esi, [ecx + 4]
mov dword [ebp - 0x184], eax
lea edi, [edi + ecx + 4]
mov eax, dword [ebp - 0x17c]
sub ebx, eax
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x174]
mov edx, dword [ecx + edx*4]
je 0x4a208d
cmp ebx, 0x7fffffff
ja 0x4a208d
mov ecx, dword [ebp - 0x178]
add ecx, eax
mov eax, ebx
mov dword [ebp - 0x180], ecx
call fcn.004a1850
xor ecx, ecx
cmp eax, ecx
jl 0x4a208d
mov eax, dword [ebp - 0x180]
cmp ebx, ecx
je 0x4a1ef9
cmp eax, ecx
je 0x4a1ef9
cmp ebx, 2
jb 0x4a1ef9
lea ecx, [ecx]
cmp byte [eax], 0x3f
jne 0x4a1eeb
cmp byte [eax + 1], 0x3f
je 0x4a1ef4
dec ebx
inc eax
cmp ebx, 2
jae 0x4a1ee0
jmp 0x4a1ef9
mov word [eax], 0x3233
mov edx, dword [ebp - 0x184]
mov dword [esi - 4], edx
mov dword [edi], ecx
mov eax, connect
mov dword [edi - 4], eax
lea ebx, [edx + 8]
mov dword [esi + 0xc], ebx
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x17c]
mov dword [edi + 8], ecx
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x174]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x194]
mov eax, dword [eax + ecx*4]
lea ebx, [eax + 1]
mov dword [ebp - 0x180], ebx
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x4a1f44
sub eax, dword [ebp - 0x180]
mov ebx, dword [ebp - 0x170]
add eax, 4
and eax, 0xfffffffc
add dword [ebp - 0x17c], eax
inc ecx
add edx, 0x10
add edi, 0x10
add esi, 0x14
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x184], edx
cmp ecx, dword [ebp + 0xc]
jb 0x4a1e82
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x188]
mov eax, 0xcccccccd
mul dword [ebp - 0xa0]
shr edx, 4
xor ecx, ecx
add edx, esi
je 0x4a1fb8
mov eax, dword [ebp - 0x178]
cmp dword [eax], 0
jne 0x4a1fb0
cmp dword [eax + 0x10], 0
je 0x4a1fb8
inc ecx
add eax, 0x14
cmp ecx, edx
jb 0x4a1fa5
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x198]
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0
push ecx
push edx
push eax
push edi
call esi
test eax, eax
je 0x4a208d
cmp dword [ebp - 0x4c], 0
jne 0x4a1ff2
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x168]
lea eax, [ebp - 0x18c]
push eax
push 0x40
mov dword [ebp - 0xa0], ebx
mov ebx, dword [ebp - 0x190]
push ecx
push ebx
push edi
mov dword [ebp - 0xa4], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x4a208d
push 0
push 0x40
lea edx, [ebp - 0x164]
push edx
push ebx
push edi
mov dword [ebp - 0xcc], 0
call esi
test eax, eax
je 0x4a208d
mov ecx, dword [ebp - 0x128]
push 0
push 0xf8
lea eax, [ebp - 0x124]
push eax
lea edx, [ebx + ecx]
push edx
push edi
call esi
test eax, eax
je 0x4a208d
mov ecx, dword [ebp - 0x18c]
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0x18c]
push eax
push ecx
push edx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x4a208d
mov dword [ebp - 0x16c], 1
mov eax, dword [ebp - 0x178]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x16c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a665a
mov esp, ebp
pop ebp
ret