Function at 0x420260
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x258
push ebx
push ebp
mov ebp, dword [esp + 0x26c]
push esi
sub ebp, 0x10
lea eax, [esp + 0xc4]
push edi
mov ebx, ebp
mov esi, ebp
push eax
and ebx, 0xf
shr esi, 4
call fcn.00428e90
mov edi, dword [esp + 0x274]
lea eax, [edi + 0x10]
push ebp
push eax
lea ecx, [esp + 0xd4]
push ecx
call fcn.0042bf50
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x60]
push eax
call fcn.0042c030
push 0x10
lea ecx, [esp + 0x58]
push edi
push ecx
call fcn.0040bf50
push 0x10
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0xd4]
push eax
call fcn.0040bf50
push 0x10
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xb0]
push edx
call fcn.0040bf50
push 0x10
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xcc]
push ecx
call fcn.0040bf50
mov eax, dword [esp + 0x2b4]
add esp, 0x48
push 0x20
lea edx, [esp + 0x7c]
push edx
push 1
push 0
push eax
call dword [esp + 0x28c]
add esp, 0x14
test eax, eax
jne 0x4206d1
push 0x10
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0xc0]
push edx
call fcn.0040bf50
lea eax, [esp + 0x84]
push eax
push 0x80
lea ecx, [esp + 0x138]
push 0
push ecx
call fcn.00425c50
add esp, 0x1c
test eax, eax
jl 0x42062f
push 0
lea edx, [esp + 0x64]
push 2
push edx
call fcn.00425d50
add esp, 0xc
test eax, eax
jl 0x42062f
test esi, esi
je 0x4203aa
lea eax, [edi + 0x10]
push eax
mov ecx, esi
shl ecx, 7
push ecx
push eax
lea edx, [esp + 0x130]
push edx
lea eax, [esp + 0x70]
push eax
call fcn.00425db0
add esp, 0x14
test eax, eax
jl 0x42062f
test ebx, ebx
je 0x420435
mov eax, dword [esp + 0x270]
mov edi, esi
shl edi, 4
add edi, eax
push 0x10
lea ecx, [esp + 0x14]
push edi
push ecx
call fcn.0040bf50
add esp, 0xc
xor eax, eax
test ebx, ebx
jbe 0x4203e9
mov cl, byte [esp + eax + 0x10]
mov dl, byte [edi + eax + 0x10]
xor cl, dl
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, ebx
jb 0x4203d6
lea eax, [esp + 0x10]
push eax
push 0x80
mov ecx, eax
push ecx
lea edx, [esp + 0x130]
push edx
lea eax, [esp + 0x70]
push eax
call fcn.00425db0
add esp, 0x14
test eax, eax
jl 0x42062f
push ebx
lea ecx, [edi + 0x10]
push edi
push ecx
call fcn.0040bf50
push 0x10
lea edx, [esp + 0x20]
push edx
push edi
call fcn.0040bf50
mov edi, dword [esp + 0x288]
add esp, 0x18
lea eax, [esp + 0xc8]
push eax
call fcn.00428e90
push ebp
lea ebp, [edi + 0x10]
lea ecx, [esp + 0xd0]
push ebp
push ecx
call fcn.0042bf50
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x60]
push eax
call fcn.0042c030
push 0x10
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x98]
push edx
call fcn.0040bf50
push 0x10
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0xb4]
push ecx
call fcn.0040bf50
push 0x10
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.0040bf50
mov edx, dword [esp + 0x2a8]
push 0x30
lea ecx, [esp + 0xb8]
push ecx
push 2
push 0
push edx
call dword [esp + 0x2c8]
add esp, 0x50
test eax, eax
mov dword [esp + 0x34], eax
je 0x4206bf
lea eax, [esp + 0xb8]
push eax
push 0x80
lea ecx, [esp + 0x12c]
push 1
push ecx
call fcn.00425c50
add esp, 0x10
test eax, eax
jl 0x42062f
push 0
lea edx, [esp + 0x64]
push 2
push edx
call fcn.00425d50
add esp, 0xc
test eax, eax
jl 0x42062f
cmp esi, 1
push 0x10
jbe 0x420531
mov eax, esi
shl eax, 4
lea ecx, [eax + edi - 0x10]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.0040bf50
jmp 0x42053d
lea eax, [esp + 0x28]
push 0
push eax
call fcn.0040bf40
add esp, 0xc
test esi, esi
je 0x420569
push ebp
mov ecx, esi
shl ecx, 7
push ecx
push ebp
lea edx, [esp + 0x130]
push edx
lea eax, [esp + 0x70]
push eax
call fcn.00426350
add esp, 0x14
test eax, eax
jl 0x42062f
test ebx, ebx
je 0x4206a0
shl esi, 4
add esi, edi
lea ebp, [esp + 0x24]
lea edi, [esp + 0x25]
lea ecx, [esp + 0x26]
lea edx, [esp + 0x27]
sub ebp, esi
sub edi, esi
sub ecx, esi
sub edx, esi
mov eax, esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], 4
lea esp, [esp]
mov dl, byte [eax + ebp]
xor byte [eax], dl
mov dl, byte [edi + eax]
xor byte [eax + 1], dl
mov dl, byte [ecx + eax]
xor byte [eax + 2], dl
mov edx, dword [esp + 0x38]
mov dl, byte [edx + eax]
xor byte [eax + 3], dl
mov edx, dword [esp + 0x20]
add eax, 4
dec edx
mov dword [esp + 0x20], edx
jne 0x4205a0
xor eax, eax
test ebx, ebx
jbe 0x4205e1
nop
mov dl, byte [eax + esi]
mov cl, byte [eax + esi + 0x10]
xor dl, cl
mov byte [eax + esi], dl
inc eax
cmp eax, ebx
jb 0x4205d0
push ebx
lea edi, [esi + 0x10]
lea edx, [esp + 0x14]
push edi
push edx
call fcn.0040bf50
mov eax, 0x10
sub eax, ebx
push eax
lea ecx, [ebx + esi]
push ecx
lea edx, [esp + ebx + 0x24]
push edx
call fcn.0040bf50
lea eax, [esp + 0x28]
push eax
push 0x80
mov ecx, eax
push ecx
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0x88]
push eax
call fcn.00426350
add esp, 0x2c
test eax, eax
jge 0x42063f
pop edi
pop esi
pop ebp
mov eax, 0x2bb
pop ebx
add esp, 0x258
ret
xor eax, eax
mov cl, byte [esp + eax + 0x24]
mov dl, byte [esp + eax + 0x10]
xor dl, cl
mov cl, byte [esp + eax + 0x11]
mov byte [esp + eax + 0x10], dl
mov dl, byte [esp + eax + 0x25]
xor cl, dl
mov dl, byte [esp + eax + 0x12]
mov byte [esp + eax + 0x11], cl
mov cl, byte [esp + eax + 0x26]
xor dl, cl
mov cl, byte [esp + eax + 0x13]
mov byte [esp + eax + 0x12], dl
mov dl, byte [esp + eax + 0x27]
xor cl, dl
mov byte [esp + eax + 0x13], cl
add eax, 4
cmp eax, 0x10
jb 0x420641
push ebx
push esi
push edi
call fcn.0040bf50
push 0x10
lea eax, [esp + 0x20]
push eax
push esi
call fcn.0040bf50
mov edi, dword [esp + 0x288]
add esp, 0x18
push 0x10
lea ecx, [esp + 0x40]
push ecx
push edi
call fcn.0040bf50
mov eax, dword [esp + 0x40]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret
push 0x10
lea edx, [esp + 0x7c]
push edx
push edi
call fcn.0040bf50
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret