Function at 0x10265609
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 0xc]
sub esp, 0x40
push ebx
push ebp
push esi
mov esi, ecx
cmp esi, 3
mov ecx, dword [esp + 0x68]
push edi
jne 0x10265680
test dl, 7
jne 0x10265680
test al, 7
jne 0x10265680
mov ebx, dword [esp + 0x68]
test bl, 7
jne 0x10265684
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
add edi, edi
add esi, esi
sar edx, 3
add edx, dword [esp + 0x54]
sar eax, 3
add eax, dword [esp + 0x60]
add esi, esi
add edi, edi
sar ebx, 3
test ecx, ecx
mov dword [esp + 0x40], esi
jle 0x10265b93
mov ebp, eax
mov esi, edx
mov dword [esp + 0x44], ecx
lea ecx, [ecx]
push ebx
push esi
push ebp
call fcn.1030ad1f
add ebp, dword [esp + 0x4c]
add esp, 0xc
add esi, edi
sub dword [esp + 0x44], 1
jne 0x10265660
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
mov ebx, dword [esp + 0x68]
shl esi, 4
add esi, 0x10bec048
mov ecx, esi
mov esi, dword [ecx]
mov ebp, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp esi, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x3c], edi
jne 0x102656bb
cmp ebp, ecx
jne 0x102656bb
mov ebp, 1
jmp 0x102656bd
xor ebp, ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
add ebx, eax
mov ecx, ebx
neg ecx
and ecx, 0x1f
mov dword [esp + 0x38], ebp
je 0x102656fa
or esi, 0xffffffff
shr esi, cl
test esi, esi
mov dword [esp + 0x18], esi
je 0x1026570c
test ebp, ebp
je 0x10265704
test bl, 7
jne 0x10265704
sar ebx, 3
and ebx, 3
mov dword [esp + 0x24], ebx
jmp 0x1026570c
mov dword [esp + 0x18], 0
jmp 0x1026570c
mov dword [esp + 0x24], 0x10
mov ebp, eax
and ebp, 0x1f
mov dword [esp + 0x48], ebp
je 0x10265746
or esi, 0xffffffff
mov ecx, ebp
shl esi, cl
test esi, esi
mov dword [esp + 0x14], esi
je 0x1026574e
cmp dword [esp + 0x38], 0
je 0x10265803
test al, 7
jne 0x10265803
mov ecx, eax
sar ecx, 3
and ecx, 3
jmp 0x10265808
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x54]
mov ecx, edx
sar ecx, 5
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
sar eax, 5
and edx, 0x1f
sar ebx, 5
cmp edx, ebp
lea eax, [ecx + eax*4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
jne 0x1026597e
cmp dword [esp + 0x6c], 0
je 0x10265b93
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x10]
lea edx, [ecx*4]
lea ecx, [eax*4]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
sub dword [esp + 0x6c], 1
mov edx, eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x54], eax
mov eax, ecx
add ecx, dword [esp + 0x44]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x60], ecx
je 0x102658c8
mov ecx, dword [edx]
mov ebx, dword [esp + 0x1c]
mov esi, ecx
and esi, edi
xor esi, dword [esp + 0x10]
add ebx, 0xffffffff
add edx, 4
cmp ebx, 8
ja case.0x102657fc.3
jmp dword [ebx*4 + 0x10265b9c]
mov ecx, 0x10
mov ebx, dword [esp + 0x68]
lea ebx, [ebx + ebp - 0x20]
test ebx, ebx
mov dword [esp + 0x1c], ecx
jge 0x10265752
cmp ecx, 0x10
je 0x10265859
mov ebx, dword [esp + 0x24]
cmp ebx, 0x10
jne 0x10265841
mov dword [esp + 0x1c], ebx
xor ebx, ebx
and esi, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x10265752
test ebx, ebx
je 0x10265859
sub ebx, ecx
add ebx, ebx
add ebx, ebx
or ecx, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], 0
xor ebx, ebx
and esi, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x10265752
mov ecx, esi
shr ecx, 8
mov byte [eax + 1], cl
jmp 0x102658bd
mov ecx, esi
shr ecx, 8
mov byte [eax + 1], cl
mov ecx, esi
shr ecx, 0x10
mov byte [eax + 2], cl
jmp 0x102658bd
mov ecx, esi
shr ecx, 8
mov byte [eax + 1], cl
shr esi, 0x10
mov word [eax + 2], si
jmp 0x102658bd
mov ecx, esi
shr ecx, 0x18
mov byte [eax + 3], cl
jmp 0x102658bd
and ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
xor ecx, dword [esp + 0x2c]
mov ebp, ebx
not ebp
or ecx, ebp
and ecx, dword [eax]
and esi, ebx
xor ecx, esi
mov dword [eax], ecx
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
add eax, 4
cmp dword [esp + 0x38], 0
mov esi, ebx
je 0x102658ec
test ebx, ebx
je 0x1026591b
mov ecx, dword [edx]
and ecx, edi
xor ecx, ebp
sub esi, 1
mov dword [eax], ecx
add eax, 4
add edx, 4
test esi, esi
jne 0x102658d5
jmp 0x1026591b
test ebx, ebx
je 0x1026591b
mov ecx, dword [edx]
mov ebp, dword [esp + 0x10]
mov ebx, ecx
and ebx, dword [esp + 0x28]
and ecx, edi
xor ebx, dword [esp + 0x2c]
sub esi, 1
and ebx, dword [eax]
add edx, 4
xor ebx, ecx
xor ebx, ebp
mov dword [eax], ebx
add eax, 4
test esi, esi
jne 0x102658f0
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], 0
je 0x1026596b
mov edx, dword [edx]
mov esi, dword [esp + 0x24]
mov ecx, edx
and ecx, edi
xor ecx, ebp
sub esi, 1
je 0x10265969
sub esi, 1
je 0x10265964
sub esi, 1
je 0x10265959
and edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
xor edx, dword [esp + 0x2c]
and ecx, dword [esp + 0x18]
not esi
or edx, esi
and edx, dword [eax]
xor edx, ecx
mov dword [eax], edx
jmp 0x1026596b
mov word [eax], cx
shr ecx, 0x10
mov byte [eax + 2], cl
jmp 0x1026596b
mov word [eax], cx
jmp 0x1026596b
mov byte [eax], cl
cmp dword [esp + 0x6c], 0
jne 0x102657b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
jle 0x1026598d
mov ecx, edx
sub ecx, ebp
mov ebx, 0x20
sub ebx, ecx
jmp 0x10265998
mov ebx, ebp
sub ebx, edx
mov ecx, 0x20
sub ecx, ebx
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ebx
je 0x10265b93
mov edx, dword [esp + 0x58]
lea eax, [edx*4]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x40], eax
lea eax, [edx*4]
mov dword [esp + 0x44], eax
jmp 0x102659d8
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
sub dword [esp + 0x6c], 1
mov edi, eax
add eax, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
mov esi, eax
add eax, dword [esp + 0x44]
cmp dword [esp + 0x5c], ebp
mov dword [esp + 0x60], eax
jle 0x10265a06
mov edx, dword [edi]
add edi, 4
cmp dword [esp + 0x14], 0
je 0x10265a8d
mov eax, edx
mov edx, dword [edi]
shr eax, cl
mov ecx, ebx
mov ebp, edx
shl ebp, cl
add edi, 4
or eax, ebp
mov ebp, dword [esp + 0x1c]
mov ecx, eax
and ecx, dword [esp + 0x3c]
add ebp, 0xffffffff
xor ecx, dword [esp + 0x10]
cmp ebp, 8
ja case.0x10265a38.3
jmp dword [ebp*4 + 0x10265bc0]
shr ecx, 8
mov byte [esi + 1], cl
jmp 0x10265a8a
mov eax, ecx
shr eax, 8
mov byte [esi + 1], al
shr ecx, 0x10
mov byte [esi + 2], cl
jmp 0x10265a8a
mov eax, ecx
shr eax, 8
mov byte [esi + 1], al
shr ecx, 0x10
mov word [esi + 2], cx
jmp 0x10265a8a
shr ecx, 0x18
mov byte [esi + 3], cl
jmp 0x10265a8a
and eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
xor eax, dword [esp + 0x2c]
and ecx, dword [esp + 0x14]
not ebp
or eax, ebp
and eax, dword [esi]
xor eax, ecx
mov dword [esi], eax
add esi, 4
cmp dword [esp + 0x38], 0
mov ebp, dword [esp + 0x20]
je 0x10265ad6
test ebp, ebp
je 0x10265b23
mov ecx, dword [esp + 0x34]
mov eax, edx
mov edx, dword [edi]
shr eax, cl
mov ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, ebx
mov ebx, edx
shl ebx, cl
sub ebp, 1
add edi, 4
add esi, 4
or ebx, eax
and ebx, dword [esp + 0x3c]
xor ebx, dword [esp + 0x10]
test ebp, ebp
mov dword [esi - 4], ebx
mov ebx, dword [esp + 0x30]
jne 0x10265aa0
jmp 0x10265b23
test ebp, ebp
je 0x10265b23
lea ebx, [ebx]
mov ecx, dword [esp + 0x34]
mov eax, edx
mov edx, dword [edi]
shr eax, cl
mov ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, ebx
mov ebx, edx
shl ebx, cl
sub ebp, 1
add edi, 4
add esi, 4
or eax, ebx
mov ebx, dword [esp + 0x30]
mov ecx, eax
and ecx, dword [esp + 0x28]
and eax, dword [esp + 0x3c]
xor ecx, dword [esp + 0x2c]
and ecx, dword [esi - 4]
xor ecx, eax
xor ecx, dword [esp + 0x10]
test ebp, ebp
mov dword [esi - 4], ecx
jne 0x10265ae0
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x10265b88
mov ecx, dword [esp + 0x34]
shr edx, cl
mov eax, ebp
mov ecx, ebx
shr eax, cl
test eax, eax
je 0x10265b41
mov eax, dword [edi]
shl eax, cl
or edx, eax
mov ecx, dword [esp + 0x24]
mov eax, edx
and eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x10]
sub ecx, 1
je 0x10265b86
sub ecx, 1
je 0x10265b81
sub ecx, 1
je 0x10265b76
and edx, dword [esp + 0x28]
mov ecx, ebp
xor edx, dword [esp + 0x2c]
not ecx
or edx, ecx
and edx, dword [esi]
and eax, ebp
xor edx, eax
mov dword [esi], edx
jmp 0x10265b88
mov word [esi], ax
shr eax, 0x10
mov byte [esi + 2], al
jmp 0x10265b88
mov word [esi], ax
jmp 0x10265b88
mov byte [esi], al
cmp dword [esp + 0x6c], 0
jne 0x102659d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret