Function at 0xc0a62c
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
lea ebx, [esp + 4]
mov esi, 0xc17100
mov edi, esp
mov ebp, 0xc174b8
mov eax, dword [ebp]
add eax, 7
xor edx, edx
mov dl, byte [esi]
add edx, edx
sub eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0xec81
je 0xc0a669
mov eax, 0xc0a888
call fcn.00c0f230
push edi
push 0x40
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
movzx eax, word [0xc174f4]
mov edx, dword [ebx]
mov dword [edx], eax
push edi
mov eax, dword [edi]
push eax
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebp]
add eax, 0xd
xor edx, edx
mov dl, byte [esi]
shl edx, 2
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0xf883
je 0xc0a6b6
mov eax, 0xc0a8c4
call fcn.00c0f230
push edi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov dl, byte [0xc174f0]
mov byte [eax], dl
push edi
mov eax, dword [edi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebp]
add eax, 0x1d
xor edx, edx
mov dl, byte [esi]
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebx], eax
cmp byte [esi], 0
jne 0xc0a707
mov eax, dword [ebx]
mov edx, eax
sub edx, 2
cmp word [edx], 0x2484
jne 0xc0a718
sub eax, 3
cmp byte [eax], 0x8b
jne 0xc0a718
cmp byte [esi], 0
je 0xc0a722
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0x8d8d
je 0xc0a722
mov eax, 0xc0a900
call fcn.00c0f230
push edi
push 0x40
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
cmp byte [esi], 0
jne 0xc0a744
movzx eax, word [0xc174f4]
add eax, 8
mov edx, dword [ebx]
mov dword [edx], eax
jmp 0xc0a751
movzx eax, word [0xc174f4]
neg eax
mov edx, dword [ebx]
mov dword [edx], eax
push edi
mov eax, dword [edi]
push eax
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebp]
add eax, 0x27
xor edx, edx
mov dl, byte [esi]
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0x6850
je 0xc0a783
mov eax, 0xc0a93c
call fcn.00c0f230
push edi
push 0x40
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
movzx eax, word [0xc174f4]
mov edx, dword [ebx]
mov dword [edx], eax
push edi
mov eax, dword [edi]
push eax
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebp]
add eax, 0x7e
xor edx, edx
mov dl, byte [esi]
imul edx, edx, 0x13
sub eax, edx
mov dword [ebx], eax
cmp byte [esi], 0
jne 0xc0a7cb
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0xc481
jne 0xc0a7dc
cmp byte [esi], 0
je 0xc0a7e6
mov eax, dword [ebx]
sub eax, 2
cmp word [eax], 0x958d
je 0xc0a7e6
mov eax, 0xc0a978
call fcn.00c0f230
push edi
push 0x40
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
cmp byte [esi], 0
jne 0xc0a805
movzx eax, word [0xc174f4]
mov edx, dword [ebx]
mov dword [edx], eax
jmp 0xc0a812
movzx eax, word [0xc174f4]
neg eax
mov edx, dword [ebx]
mov dword [edx], eax
push edi
mov eax, dword [edi]
push eax
push 4
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebp]
add eax, 0xf
xor edx, edx
mov dl, byte [esi]
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebx], eax
cmp byte [esi], 0
jne 0xc0a840
mov eax, dword [ebx]
dec eax
cmp word [eax], 0x7556
jne 0xc0a84c
cmp byte [esi], 0
je 0xc0a856
mov eax, dword [ebx]
cmp byte [eax], 0x75
je 0xc0a856
mov eax, 0xc0a9b4
call fcn.00c0f230
push edi
push 0x40
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [ebx]
mov byte [eax], 0x7c
push edi
mov eax, dword [edi]
push eax
push 1
mov eax, dword [ebx]
push eax
call sub.kernel32.dll_VirtualProtect
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret