Function at 0xc14490
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebx
push esi
add esp, 0xfffffff8
mov ebx, esp
lea esi, [esp + 4]
mov eax, dword [0xc171a8]
add eax, 0x1f
xor edx, edx
mov dl, byte [0xc17100]
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 3
cmp word [eax], 0xc4f6
je 0xc144c8
mov eax, 0xc146d0
call fcn.00c0f230
push esi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov byte [eax], 0xeb
push esi
mov eax, dword [esi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [0xc171a8]
mov ecx, eax
add ecx, 0x44
xor edx, edx
mov dl, byte [0xc17100]
lea edx, [edx + edx*2]
add ecx, edx
cmp byte [ecx], 0xd9
jne 0xc14521
add eax, 0x55
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0x41c4
je 0xc14521
mov eax, 0xc14710
call fcn.00c0f230
push esi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov byte [eax], 0xeb
push esi
mov eax, dword [esi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
cmp byte [0xc170f4], 0x2f
jne 0xc14565
mov eax, dword [0xc171a8]
add eax, 0x9c
xor edx, edx
mov dl, byte [0xc17100]
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebx], eax
jmp 0xc1457e
mov eax, dword [0xc171a8]
add eax, 0xd0
xor edx, edx
mov dl, byte [0xc17100]
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
movzx eax, byte [eax]
cmp eax, 0x8b
jg 0xc14598
je 0xc145ad
sub eax, 0xe
je 0xc145b6
sub eax, 0x2d
je 0xc145c4
jmp 0xc145cb
sub eax, 0xc7
je 0xc145bd
sub eax, 0x30
jne 0xc145cb
mov eax, dword [ebx]
sub eax, 3
mov dword [ebx], eax
jmp 0xc145cb
mov eax, dword [ebx]
sub eax, 2
mov dword [ebx], eax
jmp 0xc145cb
mov eax, dword [ebx]
dec eax
mov dword [ebx], eax
jmp 0xc145cb
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
jmp 0xc145cb
mov eax, dword [ebx]
add eax, 2
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0xc73b
je 0xc145e1
mov eax, 0xc14750
call fcn.00c0f230
push esi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov byte [eax], 0xeb
push esi
mov eax, dword [esi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
cmp byte [0xc170f4], 0x2f
jne 0xc14625
mov eax, dword [0xc171a8]
add eax, 0xad
xor edx, edx
mov dl, byte [0xc17100]
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebx], eax
jmp 0xc1463d
mov eax, dword [0xc171a8]
add eax, 0xe5
xor edx, edx
mov dl, byte [0xc17100]
add edx, edx
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
movzx eax, byte [eax]
cmp eax, 0x8b
jg 0xc14657
je 0xc1466c
sub eax, 0x3b
je 0xc14683
sub eax, 0x11
je 0xc14675
jmp 0xc1468a
sub eax, 0xcb
je 0xc1467c
sub eax, 0x28
jne 0xc1468a
mov eax, dword [ebx]
sub eax, 3
mov dword [ebx], eax
jmp 0xc1468a
mov eax, dword [ebx]
sub eax, 2
mov dword [ebx], eax
jmp 0xc1468a
mov eax, dword [ebx]
dec eax
mov dword [ebx], eax
jmp 0xc1468a
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
jmp 0xc1468a
mov eax, dword [ebx]
add eax, 2
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0xcb3b
je 0xc146a0
mov eax, 0xc14790
call fcn.00c0f230
push esi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov byte [eax], 0xeb
push esi
mov eax, dword [esi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
pop ecx
pop edx
pop esi
pop ebx
ret