Function at 0x40fc00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x441080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x44258c]
mov eax, dword [0x442588]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x1a], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x19], al
mov dword [ebp - 0x20], 0x5ebf74d1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
sub eax, 0x9782fab7
je 0x40fe63
jmp 0x40fc6d
mov eax, dword [ebp - 0x2c]
sub eax, 0xc57444d5
je 0x40fdfb
jmp 0x40fc80
mov eax, dword [ebp - 0x2c]
sub eax, 0xd34a819d
je 0x40fd88
jmp 0x40fc93
mov eax, dword [ebp - 0x2c]
sub eax, 0xd7821f5c
je 0x40feaa
jmp 0x40fca6
mov eax, dword [ebp - 0x2c]
sub eax, 0xf2dea60b
je 0x40fd7c
jmp 0x40fcb9
mov eax, dword [ebp - 0x2c]
sub eax, 0xfaf69305
je 0x40fd30
jmp 0x40fccc
mov eax, dword [ebp - 0x2c]
sub eax, 0x42f29251
je 0x40fe57
jmp 0x40fcdf
mov eax, dword [ebp - 0x2c]
sub eax, 0x5ebf74d1
je 0x40fd0a
jmp 0x40fcf2
mov eax, dword [ebp - 0x2c]
sub eax, 0x68c35531
je 0x40feb6
jmp 0x40fd05
jmp 0x40fecd
mov al, byte [ebp - 0x1a]
mov cl, byte [ebp - 0x19]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xd7821f5c
mov ecx, 0xfaf69305
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40fecd
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
mov eax, dword [0x44258c]
mov ecx, dword [0x442588]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xd7821f5c
mov ecx, 0xf2dea60b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40fecd
mov dword [ebp - 0x20], 0xd34a819d
jmp 0x40fecd
mov ecx, dword [0x44258c]
mov eax, dword [0x442588]
mov edx, ecx
sub edx, 0xdb791d2c
sub edx, 1
add edx, 0xdb791d2c
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x68c35531
mov ecx, 0xc57444d5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40fecd
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push eax
mov eax, esp
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
mov eax, dword [0x44258c]
mov ecx, dword [0x442588]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x68c35531
mov ecx, 0x42f29251
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x40fecd
mov dword [ebp - 0x20], 0x9782fab7
jmp 0x40fecd
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
mov ecx, dword [edx]
mov edi, dword [esi]
not byte [edi]
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
add byte [edi], 0x64
sub byte [edi], 0x88
pop eax
push eax
mov eax, eax
xor eax, 0x85
nop
imul byte [edi]
inc edi
loop 0x40fe77
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042a0e0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x20], 0xfaf69305
jmp 0x40fecd
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
push eax
mov eax, esp
mov edx, dword [ebp - 0x18]
mov dword [edx], esi
mov dword [eax], ecx
mov dword [ebp - 0x20], 0xc57444d5
jmp 0x40fc57