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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [0x40d170], 0
jne 0x4053cf
push 0x40
push 0x3000
push 0x20
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x40d170], eax
cmp dword [0x40d170], 0
je 0x4053cf
push 0x1e
mov eax, 4
shl eax, 0
mov ecx, dword [eax + 0x40d1b0]
push ecx
mov edx, dword [0x40d170]
push edx
call fcn.00402ec0
add esp, 0xc
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [edx + 0x40d1e8]
call eax
mov cl, byte [ebp - 4]
mov byte [0x40d4ab], cl
cmp dword [ebp - 4], 1
jne 0x404ef8
cmp dword [ebp + 0xc], 5
jne 0x404d75
mov edx, 2
imul eax, edx, 0
mov ecx, 0x52
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 3
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0xc
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0xe
mov word [ecx + 0x40d174], dx
jmp 0x404ef3
cmp dword [ebp + 0xc], 6
jne 0x404ddb
cmp dword [ebp + 0x10], 0
je 0x404d87
cmp dword [ebp + 0x10], 1
jne 0x404ddb
mov eax, 2
imul ecx, eax, 0
mov edx, 0x52
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 0
mov ecx, 3
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 1
mov eax, 0xc
mov word [edx + 0x40d174], ax
mov ecx, 2
imul edx, ecx, 3
mov eax, 0xe
mov word [edx + 0x40d174], ax
jmp 0x404ef3
cmp dword [ebp + 0xc], 6
jne 0x404e3b
cmp dword [ebp + 0x10], 2
jne 0x404e3b
mov ecx, 2
imul edx, ecx, 0
mov eax, 0x53
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 0
mov edx, 4
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 1
mov ecx, 0xd
mov word [eax + 0x40d174], cx
mov edx, 2
imul eax, edx, 3
mov ecx, 0xf
mov word [eax + 0x40d174], cx
jmp 0x404ef3
cmp dword [ebp + 0xc], 6
jne 0x404e98
cmp dword [ebp + 0x10], 3
jne 0x404e98
mov edx, 2
imul eax, edx, 0
mov ecx, 0x54
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 5
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0xe
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0x10
mov word [ecx + 0x40d174], dx
jmp 0x404ef3
cmp dword [ebp + 0xc], 0xa
je 0x404ea4
cmp dword [ebp + 0xc], 0xb
jne 0x404ef3
mov eax, 2
imul ecx, eax, 0
mov edx, 0x55
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 0
mov ecx, 6
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 1
mov eax, 0xf
mov word [edx + 0x40d174], ax
mov ecx, 2
imul edx, ecx, 3
mov eax, 0x11
mov word [edx + 0x40d174], ax
jmp 0x4053cf
cmp dword [ebp + 0xc], 5
jne 0x404f58
cmp dword [ebp + 0x10], 1
jne 0x404f58
mov ecx, 2
imul edx, ecx, 0
mov eax, 0x25
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 0
mov edx, 0xb7
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 1
mov ecx, 0x19
mov word [eax + 0x40d174], cx
mov edx, 2
imul eax, edx, 3
mov ecx, 0x97
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0xc], 5
jne 0x404fb8
cmp dword [ebp + 0x10], 2
jne 0x404fb8
mov edx, 2
imul eax, edx, 0
mov ecx, 0x27
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 0xbf
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0x1b
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0x9e
mov word [ecx + 0x40d174], dx
jmp 0x4053cf
cmp dword [ebp + 0xc], 6
jne 0x405018
cmp dword [ebp + 0x10], 0
jne 0x405018
mov eax, 2
imul ecx, eax, 0
mov edx, 0x3c
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 0
mov ecx, 0x102
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 1
mov eax, 0x30
mov word [edx + 0x40d174], ax
mov ecx, 2
imul edx, ecx, 3
mov eax, 0xe1
mov word [edx + 0x40d174], ax
jmp 0x4053cf
cmp dword [ebp + 0xc], 6
jne 0x405078
cmp dword [ebp + 0x10], 1
jne 0x405078
mov ecx, 2
imul edx, ecx, 0
mov eax, 0x42
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 0
mov edx, 0x111
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 1
mov ecx, 0x32
mov word [eax + 0x40d174], cx
mov edx, 2
imul eax, edx, 3
mov ecx, 0xe7
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0xc], 6
jne 0x4050d8
cmp dword [ebp + 0x10], 2
jne 0x4050d8
mov edx, 2
imul eax, edx, 0
mov ecx, 0x163
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 0x87
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0x174
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0xb3
mov word [ecx + 0x40d174], dx
jmp 0x4053cf
cmp dword [ebp + 0xc], 6
jne 0x405138
cmp dword [ebp + 0x10], 3
jne 0x405138
mov eax, 2
imul ecx, eax, 0
mov edx, 0x168
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 0
mov ecx, 0x8a
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 1
mov eax, 0x179
mov word [edx + 0x40d174], ax
mov ecx, 2
imul edx, ecx, 3
mov eax, 0xb6
mov word [edx + 0x40d174], ax
jmp 0x4053cf
cmp dword [ebp + 0xc], 0xa
jne 0x40519b
cmp dword [ebp + 0x14], 0x2800
jne 0x40519b
mov ecx, 2
imul edx, ecx, 0
mov eax, 0x16e
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 0
mov edx, 0x8c
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 1
mov ecx, 0x180
mov word [eax + 0x40d174], cx
mov edx, 2
imul eax, edx, 3
mov ecx, 0xb8
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0xc], 0xa
jne 0x4051fe
cmp dword [ebp + 0x14], 0x295a
jne 0x4051fe
mov edx, 2
imul eax, edx, 0
mov ecx, 0x170
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 0x8c
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0x183
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0xb8
mov word [ecx + 0x40d174], dx
jmp 0x4053cf
cmp dword [ebp + 0xc], 0xa
jne 0x405261
cmp dword [ebp + 0x14], 0x3839
jne 0x405261
mov eax, 2
imul ecx, eax, 0
mov edx, 0x172
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 0
mov ecx, 0x8d
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 1
mov eax, 0x185
mov word [edx + 0x40d174], ax
mov ecx, 2
imul edx, ecx, 3
mov eax, 0xba
mov word [edx + 0x40d174], ax
jmp 0x4053cf
cmp dword [ebp + 0xc], 0xa
jne 0x4052c4
cmp dword [ebp + 0x14], 0x3ad7
jne 0x4052c4
mov ecx, 2
imul edx, ecx, 0
mov eax, 0x175
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 0
mov edx, 0x8d
mov word [ecx + 0x40d174], dx
mov eax, 2
shl eax, 1
mov ecx, 0x18a
mov word [eax + 0x40d174], cx
mov edx, 2
imul eax, edx, 3
mov ecx, 0xbb
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0xc], 0xa
je 0x4052d4
cmp dword [ebp + 0xc], 0xb
jne 0x4053cf
mov edx, 2
imul eax, edx, 0
mov ecx, 0x178
mov word [eax + 0x40d174], cx
mov edx, 2
shl edx, 0
mov eax, 0x8e
mov word [edx + 0x40d174], ax
mov ecx, 2
shl ecx, 1
mov edx, 0x18e
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 3
mov edx, 0xbc
mov word [ecx + 0x40d174], dx
cmp dword [ebp + 0x14], 0x3fab
jne 0x405344
mov eax, 2
shl eax, 1
mov ecx, 0x18d
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0x14], 0x42ee
jne 0x405362
mov edx, 2
shl edx, 1
mov eax, 0x18d
mov word [edx + 0x40d174], ax
jmp 0x4053cf
cmp dword [ebp + 0x14], 0x4563
jne 0x405380
mov ecx, 2
shl ecx, 1
mov edx, 0x18d
mov word [ecx + 0x40d174], dx
jmp 0x4053cf
cmp dword [ebp + 0x14], 0x47ba
jne 0x40539e
mov eax, 2
shl eax, 1
mov ecx, 0x18d
mov word [eax + 0x40d174], cx
jmp 0x4053cf
cmp dword [ebp + 0x14], 0x47bb
jne 0x4053bc
mov edx, 2
shl edx, 1
mov eax, 0x18d
mov word [edx + 0x40d174], ax
jmp 0x4053cf
mov ecx, 2
shl ecx, 1
mov edx, 0x18e
mov word [ecx + 0x40d174], dx
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ecx + 0x40d174]
test edx, edx
je 0x4053eb
mov dword [ebp - 8], 1
jmp 0x4053f2
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret