Function at 0x401260
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x18
mov ecx, dword [eax*4 + 0x44b7e0]
push ebx
push ebp
push esi
test ecx, ecx
push edi
je 0x401571
mov ecx, dword [eax*4 + 0x4430ac]
mov edx, dword [eax*4 + 0x443160]
lea esi, [eax*4 + 0x4430ac]
sub edx, ecx
push edx
mov edx, dword [eax*4 + 0x4430fc]
add edx, ecx
push edx
push eax
call fcn.00429e40
add esp, 0xc
cmp eax, 0xffffffff
je 0x401571
test eax, eax
je 0x401571
add dword [esi], eax
mov eax, dword [0x44b5f8]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x14], 0
jle 0x401571
mov dword [esp + 0x2c], 0x44b69c
mov eax, dword [ebp*4 + 0x44b7e0]
test eax, eax
je 0x40154c
mov eax, dword [ebp*4 + 0x44c450]
test eax, eax
jne 0x4013a6
cmp dword [ebp*4 + 0x4430ac], 8
jl 0x40154c
mov eax, dword [ebp*4 + 0x4430fc]
push eax
push ebp
call fcn.0042a120
mov ecx, dword [esp + 0x34]
push 8
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
mov bl, byte [esp + 0x24]
mov eax, dword [ecx + 4]
xor bl, 0x6b
mov dword [esp + 0x28], eax
mov byte [esp + 0x24], bl
mov edx, dword [ecx + 8]
mov bl, byte [esp + 0x2b]
mov dword [esp + 0x2c], edx
mov dl, byte [esp + 0x27]
mov eax, dword [ecx + 0xc]
mov cl, byte [esp + 0x2f]
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x25]
xor al, cl
mov cl, byte [esp + 0x28]
mov byte [esp + 0x25], al
mov al, byte [esp + 0x2a]
xor dl, 0x72
xor al, 0x99
mov byte [esp + 0x27], dl
mov dl, byte [esp + 0x33]
mov byte [esp + 0x2a], al
lea eax, [esp + 0x24]
xor cl, 0x8a
xor bl, dl
push eax
push ebp
mov byte [esp + 0x30], cl
mov byte [esp + 0x33], bl
call fcn.00429de0
add esp, 0x14
dec eax
neg eax
sbb eax, eax
mov dword [ebp*4 + 0x4430ac], 0
add eax, 2
mov dword [ebp*4 + 0x44c450], eax
jmp 0x40154c
cmp eax, 1
je 0x40154c
mov ecx, dword [ebp*4 + 0x4430ac]
cmp ecx, 6
jl 0x40154c
mov edi, dword [ebp*4 + 0x4430fc]
mov bx, word [edi + 4]
mov edx, dword [edi]
mov eax, ebx
mov dword [esp + 0x10], edx
and eax, 0xffff
cmp eax, ecx
jg 0x40154c
cmp edx, dword [0x4432d8]
ja 0x40154c
cmp edx, dword [0x4432d8]
jae 0x40143f
sub ecx, eax
lea esi, [edi + eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp*4 + 0x4430ac]
sub ecx, eax
mov eax, ecx
mov dword [ebp*4 + 0x4430ac], ecx
cmp eax, 6
jl 0x40143b
mov edi, dword [ebp*4 + 0x4430fc]
mov bx, word [edi + 4]
mov edx, dword [edi]
mov eax, ebx
mov dword [esp + 0x10], edx
and eax, 0xffff
cmp eax, ecx
jle 0x4013eb
jmp 0x40143f
mov edx, dword [esp + 0x10]
mov eax, dword [ebp*4 + 0x4430ac]
cmp eax, 6
jl 0x40154c
and ebx, 0xffff
cmp ebx, eax
jg 0x40154c
cmp edx, dword [0x4432d8]
jne 0x40154c
mov eax, dword [0x44327c]
mov edi, dword [0x443284]
mov esi, dword [ebp*4 + 0x4430fc]
lea edx, [ebx - 6]
mov ecx, edx
add edi, eax
mov eax, ecx
add esi, 6
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
test edx, edx
rep movsb byte es:[edi], byte [esi]
jle 0x4014f2
mov ecx, dword [0x44327c]
mov esi, dword [0x443284]
add esi, ecx
xor byte [esi + eax], 0x7a
lea ecx, [esi + eax]
mov ecx, dword [0x44327c]
mov esi, dword [0x443284]
add esi, ecx
xor byte [esi + eax], 0x64
lea ecx, [esi + eax]
mov ecx, dword [0x44327c]
mov esi, dword [0x443284]
add esi, ecx
xor byte [esi + eax], 9
lea ecx, [esi + eax]
mov ecx, dword [0x44327c]
mov esi, dword [0x443284]
add esi, ecx
xor byte [esi + eax], 0x2f
lea ecx, [esi + eax]
inc eax
cmp eax, edx
jl 0x401499
mov edx, dword [0x443284]
mov ecx, dword [ebp*4 + 0x4430ac]
mov edi, dword [0x4432d8]
sub ecx, ebx
lea eax, [edx + ebx - 6]
inc edi
mov dword [0x443284], eax
xor eax, eax
test ecx, ecx
mov dword [0x4432d8], edi
mov dword [esp + 0x14], 1
jle 0x401545
mov esi, dword [ebp*4 + 0x4430fc]
inc eax
lea edx, [ebx + esi]
mov cl, byte [edx + eax - 1]
mov byte [esi + eax - 1], cl
mov edx, dword [ebp*4 + 0x4430ac]
sub edx, ebx
cmp eax, edx
jl 0x401525
sub dword [ebp*4 + 0x4430ac], ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [0x44b5f8]
inc ebp
add ecx, 0x10
cmp ebp, eax
mov dword [esp + 0x2c], ecx
jl 0x4012d7
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4012b8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret