Function at 0x408c50
Capabilities:
Encode data using xor
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
mov ebx, ecx
mov dword [ebp - 0xc], 0xfc24
add ebx, 0x41e5
mov eax, 0x17fe4
cmp dword [ebp + 0xc], 0xbb68
mov ecx, 0x113a
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x1c], eax
mov edi, 0x3f36
mov dword [ebp - 0x18], ebx
mov eax, 0xffffd486
mov ebx, dword [ebp + 0x14]
mov dword [ebp + 8], 0x2575
jle 0x408cc9
or dword [ebp + 0xc], 0x8d98
mov ecx, ebx
and ecx, 0x113a
mov dword [ebp + 8], 0x5993
mov edi, 0x14efb
cmp ebx, 0xad13
jle 0x408cc9
add dword [ebp - 0x18], 0x104b
mov dword [ebp + 8], 0x179db
add dword [ebp + 8], 0x17b26
sub eax, 0x176b9
add eax, dword [ebp + 0xc]
and edx, 0xfc24
sub edi, dword [ebp + 8]
or esi, 0x11c8f
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
sub eax, 0xfc5
mov edx, ecx
mov dword [ebp - 8], 0xc17f
xor edx, 0x4faa
mov dword [ebp + 0xc], edi
and eax, 0x4a85
mov dword [ebp - 4], edx
lea edx, [ebx + 0x1008]
mov dword [ebp - 0x18], eax
xor ecx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], 0x1fdff
cmp ecx, 0x1796b
jle 0x408d6c
add ecx, dword [ebp - 0x14]
mov eax, 0x13da0
push 0x1b27
push 0xded
push 0x1d15
and ebx, 0xce5d
mov dword [ebp - 0x1c], eax
push 0x1496b
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x28], ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edx, dword [ebp - 4]
add esp, 0x10
push ecx
push 0x126e0
lea edi, [edx + 0x8f56]
mov ebx, 0xc314
call fcn.00404700
and ebx, edi
add esp, 8
cmp ebx, 0x1e7e
mov edi, 0xffffef95
mov ebx, dword [ebp - 8]
jne 0x408da3
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov edx, dword [ebp - 0x10]
mov eax, 0xffffcac0
mov ecx, dword [ebp - 0x28]
add eax, 0x3541
mov dword [ebp - 0x2c], eax
add esp, 4
imul eax, eax, 0x5e75
add dword [ebp + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
nop dword [eax]
xor dword [ebp - 0xc], 0x6e67
mov eax, ecx
and dword [ebp + 8], 0xc58e
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 0x24]
xor ebx, 0x11c90
cmp ecx, 0xc77
cmovle ebx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
add ebx, 0xfffec1a2
cmp ecx, 0xc77
mov ecx, ebx
mov dword [ebp - 4], ebx
cmovle ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 4], ecx
dec ebx
mov ecx, eax
mov dword [ebp - 0x2c], ebx
and ecx, 0x11222
cmp eax, 0xc77
cmovle ecx, eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
test ebx, ebx
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x24], eax
jne 0x408df0
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
nop word [eax + eax]
xor eax, edi
cmp dword [ebp - 0xc], 0xd3f8
mov dword [ebp - 0x1c], eax
jge 0x408eb9
add edi, 0x11c90
cmp dword [ebp - 0x20], 0x1867b
jle 0x408eb9
and dword [ebp - 0x20], 0x6479
or esi, 0x8d6e
xor esi, ecx
cmp eax, 0xa93b
jle 0x408eb9
xor ecx, dword [ebp + 8]
and esi, dword [ebp - 0x14]
add dword [ebp - 8], 0x97f9
xor eax, dword [ebp - 4]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
inc edx
xor dword [ebp + 0x14], ecx
and esi, 0xfbe7
mov ecx, dword [ebp + 0xc]
or ebx, 0x3a6d
cmp dword [ebp - 0x18], 0x30fb
mov dword [ebp - 0x10], edx
jle 0x408f1a
push 0x2a9c
push 0x9507
push 0x7986
push 0x507c
sub ecx, ebx
sub edi, 0xf133
push 0x4829
push 0xd9e4
mov dword [ebp + 0xc], ecx
and esi, ecx
call dword [sym.imp.USER32.dll_DefWindowProcW]
or ebx, dword [ebp - 0x20]
add esp, 0x18
mov eax, dword [ebp - 0x1c]
sub ebx, esi
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
cmp edx, 0x821
jl 0x408e70
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret