Function at 0x408bb0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push edi
push esi
sub esp, 0x14
call fcn.0043b690
test al, al
je 0x408e01
call dword [sym.imp.USER32.dll_GetInputState]
mov esi, eax
call fcn.00431af0
test al, al
je 0x408dfc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esp + 8], 0x1ec50805
mov dword [esp + 0xc], 0x2a20fe22
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x408c49
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, 0x156f77e7
xor eax, 0x156f77e7
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x7d
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x408c10
mov dword [esp + 8], 0xaed70d4d
mov dword [esp + 0xc], 0xb8d76a53
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x408cb9
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x4d65efe0]
mov edi, edx
and edi, ecx
xor edx, ecx
add eax, 0x20
and eax, ecx
sub edx, eax
lea ecx, [edx + edi*2]
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x60
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x408c70
test esi, esi
je 0x408d7e
mov dword [esp], 0x3020121
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 3
ja 0x408d28
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x40184440
add eax, 0x40184440
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xc0
mov ecx, dword [esp + 4]
mov byte [esp + ecx], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 4
jb 0x408ce0
mov dword [esp + 8], 0x31ab0d77
mov dword [esp + 0xc], 0xefe0dc16
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x408d7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x6cec0506
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xe2
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x408d50
mov dword [esp + 8], 0x1e1f1819
mov dword [esp + 0xc], 0x62631c1d
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x408de9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, 0x2b872f3a
xor eax, 0x2b872f3a
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xde
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x408db0
call fcn.00409e10
test al, al
je 0x408dfc
call fcn.0040c9d0
call fcn.0040b920
call fcn.0043c9e0
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]