Function at 0x40f700
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x300
push ebx
push ebp
push esi
xor ecx, ecx
mov eax, 1
push edi
mov edx, eax
and dl, 0x80
mov byte [esp + ecx + 0x110], al
mov byte [esp + ecx + 0x20f], al
mov byte [esp + eax + 0x10], cl
add ecx, 1
neg dl
lea esi, [eax + eax]
sbb edx, edx
and edx, 0x11b
xor edx, esi
xor eax, edx
cmp eax, 1
jne 0x40f711
mov dword [0x423980], eax
movzx eax, byte [esp + 0x11]
movzx eax, byte [esp + eax + 0x129]
test eax, eax
mov dword [0x423984], eax
je 0x40f76b
movzx ecx, byte [esp + eax + 0x10]
movzx eax, byte [esp + ecx + 0x129]
jmp 0x40f76d
xor eax, eax
test eax, eax
mov dword [0x423988], eax
je 0x40f785
movzx edx, byte [esp + eax + 0x10]
movzx eax, byte [esp + edx + 0x129]
jmp 0x40f787
xor eax, eax
test eax, eax
mov dword [0x42398c], eax
je 0x40f79f
movzx eax, byte [esp + eax + 0x10]
movzx eax, byte [esp + eax + 0x129]
jmp 0x40f7a1
xor eax, eax
test eax, eax
mov dword [0x423990], eax
je 0x40f7b9
movzx ecx, byte [esp + eax + 0x10]
movzx eax, byte [esp + ecx + 0x129]
jmp 0x40f7bb
xor eax, eax
test eax, eax
mov dword [0x423994], eax
je 0x40f7d3
movzx edx, byte [esp + eax + 0x10]
movzx eax, byte [esp + edx + 0x129]
jmp 0x40f7d5
xor eax, eax
test eax, eax
mov dword [0x423998], eax
je 0x40f7ed
movzx eax, byte [esp + eax + 0x10]
movzx eax, byte [esp + eax + 0x129]
jmp 0x40f7ef
xor eax, eax
test eax, eax
mov dword [0x42399c], eax
je 0x40f807
movzx ecx, byte [esp + eax + 0x10]
movzx eax, byte [esp + ecx + 0x129]
jmp 0x40f809
xor eax, eax
test eax, eax
mov dword [0x4239a0], eax
je 0x40f821
movzx edx, byte [esp + eax + 0x10]
movzx eax, byte [esp + edx + 0x129]
jmp 0x40f823
xor eax, eax
mov dword [0x4239a4], eax
xor eax, eax
lea ebx, [ebx]
test al, al
je 0x40f84a
movzx ecx, al
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [esp + 0x20f]
sub ecx, edx
movzx ecx, byte [ecx]
jmp 0x40f84c
xor ecx, ecx
lea edx, [ecx + ecx]
xor edx, ecx
add edx, edx
xor edx, ecx
add edx, edx
xor edx, ecx
add edx, edx
xor ecx, edx
mov ebx, ecx
shr ebx, 8
xor bl, cl
xor bl, 0x63
je 0x40f883
movzx ecx, bl
movzx ecx, byte [esp + ecx + 0x10]
movzx edx, byte [esp + ecx + 0x111]
movzx esi, byte [esp + ecx + 0x129]
jmp 0x40f887
xor edx, edx
xor esi, esi
shl edx, 8
movzx ecx, bl
or edx, ecx
shl edx, 8
or edx, ecx
shl edx, 8
or edx, esi
mov esi, edx
rol esi, 8
mov dword [eax*4 + 0x422980], edx
mov dword [eax*4 + 0x422d80], esi
mov esi, edx
rol esi, 0x10
rol edx, 0x18
mov dword [eax*4 + 0x423580], edx
mov edx, ecx
rol edx, 8
mov dword [eax*4 + 0x423e00], edx
mov edx, ecx
mov dword [eax*4 + 0x423a00], ecx
rol edx, 0x10
rol ecx, 0x18
mov dword [eax*4 + 0x424600], ecx
mov dword [eax*4 + 0x423180], esi
movzx esi, al
lea ecx, [esi*8]
xor ecx, esi
add ecx, ecx
add ecx, ecx
xor ecx, esi
mov dword [eax*4 + 0x424200], edx
add ecx, ecx
mov edx, ecx
shr edx, 8
xor dl, cl
xor dl, 5
je 0x40f96a
lea ecx, [esi*8]
xor ecx, esi
add ecx, ecx
add ecx, ecx
xor ecx, esi
add ecx, ecx
mov edx, ecx
shr edx, 8
movzx edx, dl
movzx ecx, cl
xor edx, ecx
xor edx, 5
movzx edx, byte [esp + edx + 0x10]
lea ecx, [esp + 0x20f]
sub ecx, edx
mov bl, byte [ecx]
test bl, bl
je 0x40f96c
movzx edx, bl
movzx edx, byte [esp + edx + 0x10]
movzx ecx, byte [esp + edx + 0x178]
movzx edi, byte [esp + edx + 0x1fe]
movzx esi, byte [esp + edx + 0x1d7]
movzx edx, byte [esp + edx + 0x1ef]
jmp 0x40f974
xor bl, bl
xor ecx, ecx
xor edi, edi
xor esi, esi
xor edx, edx
shl ecx, 8
or ecx, edi
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, edx
mov edx, ecx
movzx ecx, bl
mov esi, edx
rol esi, 8
mov edi, edx
rol edi, 0x10
mov dword [ecx*4 + 0x425a00], edx
mov ebp, edx
mov dword [eax*4 + 0x424a00], edx
rol ebp, 0x18
mov edx, ecx
rol edx, 8
mov dword [eax*4 + 0x421d80], edx
mov edx, ecx
rol edx, 0x10
mov dword [eax*4 + 0x421980], ecx
mov dword [ecx*4 + 0x425e00], esi
mov dword [ecx*4 + 0x426200], edi
mov dword [ecx*4 + 0x426600], ebp
rol ecx, 0x18
mov dword [eax*4 + 0x424e00], esi
mov dword [eax*4 + 0x425200], edi
mov dword [eax*4 + 0x425600], ebp
mov dword [eax*4 + 0x422180], edx
mov dword [eax*4 + 0x422580], ecx
add eax, 1
cmp eax, 0x100
jb 0x40f830
pop edi
pop esi
pop ebp
mov byte [0x421494], 1
pop ebx
add esp, 0x300
ret