Function at 0x4094a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x42f248
push 0x41c930
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x431060]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], eax
pushal
mov eax, 0
cpuid
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], ecx
mov eax, 1
cpuid
mov dword [ebp - 0x28], edx
popal
mov dword [ebp - 4], 0xfffffffe
xor ebx, ebx
xor eax, eax
jmp 0x409510
inc eax
cmp eax, 0x18
jle 0x409510
mov dword [ebp - 0x20], 0xf5339fd6
xor eax, eax
nop
inc eax
cmp eax, 0x18
jle 0x409520
mov dword [ebp - 0x1c], 0x9cb38c09
xor eax, eax
nop
inc eax
cmp eax, 0x18
jle 0x409530
mov dword [ebp - 0x24], 0xa6ae91fb
xor eax, eax
nop
inc eax
cmp eax, 0x18
jle 0x409540
mov dword [ebp - 0x28], 0x65259e6b
mov dword [ebp - 0x30], ebx
lea esi, [ebp - 0x30]
call fcn.00408300
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409570
push 0xffffffffffffffff
push 0x10
mov ecx, edi
call fcn.00401d40
jmp 0x40957d
push ebx
mov eax, 0x10
sub eax, ecx
call fcn.00406a00
cmp dword [edi + 0x18], 0x10
jb 0x40958b
mov eax, dword [edi + 4]
mov dword [ebp - 0x2c], eax
jmp 0x409591
add edi, 4
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x30]
test al, 1
jne 0x4095a0
mov ecx, dword [ebp - 0x1c]
lea esi, [eax + ecx]
jmp 0x4095a5
mov esi, dword [ebp - 0x1c]
sub esi, eax
mov dl, bl
add dl, 2
movzx ecx, dl
rol esi, cl
add esi, eax
movzx ecx, al
mov edx, esi
shl edx, 0x10
mov edi, esi
and edi, 0xff00
add edx, edi
shl edx, 8
mov edi, esi
shr edi, 8
and edi, 0xff00
add edx, edi
shr esi, 0x18
add edx, esi
xor edx, 0x7ac9127b
add edx, eax
ror edx, cl
mov ecx, edx
shl ecx, 0x10
mov esi, edx
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov esi, edx
shr esi, 8
and esi, 0xff00
add ecx, esi
shr edx, 0x18
add ecx, edx
mov edx, eax
and edx, 0xff00
mov esi, eax
shl esi, 0x10
add edx, esi
shl edx, 8
mov esi, eax
shr esi, 8
and esi, 0xff00
add edx, esi
mov esi, eax
shr esi, 0x18
add edx, esi
xor ecx, edx
xor ecx, 0x39ba2d71
mov esi, ecx
inc ebx
cmp ebx, 0x18
jle 0x4095a5
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], esi
test al, 1
jne 0x409651
mov edx, dword [ebp - 0x20]
lea esi, [eax + edx]
jmp 0x409656
mov esi, dword [ebp - 0x20]
sub esi, eax
xor ebx, ebx
mov cl, bl
add cl, 2
movzx ecx, cl
rol esi, cl
add esi, eax
movzx ecx, al
mov edx, esi
and edx, 0xff00
mov edi, esi
shl edi, 0x10
add edx, edi
shl edx, 8
mov edi, esi
shr edi, 8
and edi, 0xff00
add edx, edi
shr esi, 0x18
add edx, esi
xor edx, 0x7ac9127b
add edx, eax
ror edx, cl
mov ecx, edx
and ecx, 0xff00
mov esi, edx
shl esi, 0x10
add ecx, esi
shl ecx, 8
mov esi, edx
shr esi, 8
and esi, 0xff00
add ecx, esi
shr edx, 0x18
add ecx, edx
mov edx, eax
and edx, 0xff00
mov esi, eax
shl esi, 0x10
add edx, esi
shl edx, 8
mov esi, eax
shr esi, 8
and esi, 0xff00
add edx, esi
mov esi, eax
shr esi, 0x18
add edx, esi
xor ecx, edx
xor ecx, 0x39ba2d71
mov esi, ecx
inc ebx
cmp ebx, 0x18
jle 0x409658
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 4], esi
test al, 1
jne 0x409705
mov edx, dword [ebp - 0x24]
lea esi, [eax + edx]
jmp 0x40970a
mov esi, dword [ebp - 0x24]
sub esi, eax
xor ebx, ebx
lea esp, [esp]
mov cl, bl
add cl, 2
movzx ecx, cl
rol esi, cl
add esi, eax
movzx ecx, al
mov edx, esi
shl edx, 0x10
mov edi, esi
and edi, 0xff00
add edx, edi
shl edx, 8
mov edi, esi
shr edi, 8
and edi, 0xff00
add edx, edi
shr esi, 0x18
add edx, esi
xor edx, 0x7ac9127b
add edx, eax
ror edx, cl
mov ecx, edx
shl ecx, 0x10
mov esi, edx
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov esi, edx
shr esi, 8
and esi, 0xff00
add ecx, esi
shr edx, 0x18
add ecx, edx
mov edx, eax
and edx, 0xff00
mov esi, eax
shl esi, 0x10
add edx, esi
shl edx, 8
mov esi, eax
shr esi, 8
and esi, 0xff00
add edx, esi
mov esi, eax
shr esi, 0x18
add edx, esi
xor ecx, edx
xor ecx, 0x39ba2d71
mov esi, ecx
inc ebx
cmp ebx, 0x18
jle 0x409710
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 8], esi
test al, 1
jne 0x4097bd
mov edx, dword [ebp - 0x28]
lea esi, [eax + edx]
jmp 0x4097c2
mov esi, dword [ebp - 0x28]
sub esi, eax
xor ebx, ebx
mov cl, bl
add cl, 2
movzx ecx, cl
rol esi, cl
add esi, eax
movzx ecx, al
mov edx, esi
shl edx, 0x10
mov edi, esi
and edi, 0xff00
add edx, edi
shl edx, 8
mov edi, esi
shr edi, 8
and edi, 0xff00
add edx, edi
shr esi, 0x18
add edx, esi
xor edx, 0x7ac9127b
add edx, eax
ror edx, cl
mov ecx, edx
shl ecx, 0x10
mov esi, edx
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov esi, edx
shr esi, 8
and esi, 0xff00
add ecx, esi
shr edx, 0x18
add ecx, edx
mov edx, eax
and edx, 0xff00
mov esi, eax
shl esi, 0x10
add edx, esi
shl edx, 8
mov esi, eax
shr esi, 8
and esi, 0xff00
add edx, esi
mov esi, eax
shr esi, 0x18
add edx, esi
xor ecx, edx
xor ecx, 0x39ba2d71
mov esi, ecx
inc ebx
cmp ebx, 0x18
jle 0x4097c4
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0xc], esi
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret