Function at 0x10001000
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
cmp edx, 0x10
push edi
mov edi, ecx
je 0x1000101a
cmp edx, 0x18
je 0x1000101a
cmp edx, 0x20
je 0x1000101a
xor al, al
pop edi
ret
cmp edx, 0x10
mov dword [edi], edx
mov ecx, dword [eax]
push ebx
mov dword [edi + 4], ecx
mov ecx, dword [eax + 4]
push ebp
lea ebp, [edi + 8]
mov dword [ebp], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 0xc], ecx
mov ecx, dword [eax + 0xc]
push esi
mov dword [edi + 0x10], ecx
je 0x100012da
cmp edx, 0x18
je 0x1000112a
cmp edx, 0x20
jne 0x1000149c
mov edx, dword [eax + 0x10]
mov dword [edi + 0x14], edx
mov ecx, dword [eax + 0x14]
mov dword [edi + 0x18], ecx
mov edx, dword [eax + 0x18]
mov dword [edi + 0x1c], edx
mov eax, dword [eax + 0x1c]
mov dword [edi + 0x20], eax
lea ecx, [edi + 0x24]
xor esi, esi
mov edx, eax
ror edx, 8
mov ebx, edx
shr ebx, 0x10
mov eax, edx
shr eax, 0x18
mov eax, dword [eax*4 + 0x1005a028]
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor eax, dword [edx*4 + str.cwko0]
add esi, 4
xor eax, dword [esi + 0x100573fc]
add ecx, 0x20
xor eax, dword [ecx - 0x40]
mov dword [ecx - 0x20], eax
xor eax, dword [ecx - 0x3c]
mov dword [ecx - 0x1c], eax
xor eax, dword [ecx - 0x38]
mov dword [ecx - 0x18], eax
xor eax, dword [ecx - 0x34]
mov ebx, eax
mov dword [ecx - 0x14], eax
mov edx, eax
shr ebx, 0x10
shr edx, 0x18
mov edx, dword [edx*4 + 0x1005a028]
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059c28]
mov ebx, eax
shr ebx, 8
movzx eax, al
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059828]
xor edx, dword [eax*4 + str.cwko0]
xor edx, dword [ecx - 0x30]
mov eax, edx
mov dword [ecx - 0x10], eax
xor eax, dword [ecx - 0x2c]
mov dword [ecx - 0xc], eax
xor eax, dword [ecx - 0x28]
mov dword [ecx - 8], eax
xor eax, dword [ecx - 0x24]
cmp esi, 0x1c
mov dword [ecx - 4], eax
jb 0x10001071
jmp 0x10001498
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x14], ecx
mov eax, dword [eax + 0x14]
mov dword [edi + 0x18], eax
mov ecx, eax
mov eax, ebp
xor esi, esi
lea esp, [esp]
mov edx, ecx
ror edx, 8
mov ebx, edx
shr ebx, 0x10
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1005a028]
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor ecx, dword [edx*4 + str.cwko0]
xor ecx, dword [esi + 0x10057400]
xor ecx, dword [eax - 4]
mov dword [eax + 0x14], ecx
xor ecx, dword [eax]
mov dword [eax + 0x18], ecx
xor ecx, dword [eax + 4]
mov dword [eax + 0x1c], ecx
xor ecx, dword [eax + 8]
mov dword [eax + 0x20], ecx
xor ecx, dword [eax + 0xc]
mov dword [eax + 0x24], ecx
xor ecx, dword [eax + 0x10]
mov dword [eax + 0x28], ecx
ror ecx, 8
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1005a028]
shr ebx, 0x10
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059c28]
mov ebx, ecx
shr ebx, 8
movzx ecx, cl
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059828]
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [esi + 0x10057404]
xor edx, dword [eax + 0x14]
mov dword [eax + 0x2c], edx
xor edx, dword [eax + 0x18]
mov dword [eax + 0x30], edx
xor edx, dword [eax + 0x1c]
mov dword [eax + 0x34], edx
xor edx, dword [eax + 0x20]
mov dword [eax + 0x38], edx
xor edx, dword [eax + 0x24]
mov dword [eax + 0x3c], edx
xor edx, dword [eax + 0x28]
mov dword [eax + 0x40], edx
ror edx, 8
mov ebx, edx
shr ebx, 0x10
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1005a028]
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor ecx, dword [edx*4 + str.cwko0]
xor ecx, dword [esi + 0x10057408]
xor ecx, dword [eax + 0x2c]
mov dword [eax + 0x44], ecx
xor ecx, dword [eax + 0x30]
mov dword [eax + 0x48], ecx
xor ecx, dword [eax + 0x34]
mov dword [eax + 0x4c], ecx
xor ecx, dword [eax + 0x38]
mov dword [eax + 0x50], ecx
xor ecx, dword [eax + 0x3c]
mov dword [eax + 0x54], ecx
xor ecx, dword [eax + 0x40]
mov dword [eax + 0x58], ecx
ror ecx, 8
mov ebx, ecx
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1005a028]
shr ebx, 0x10
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059c28]
mov ebx, ecx
shr ebx, 8
movzx ecx, cl
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059828]
add esi, 0x10
xor edx, dword [ecx*4 + str.cwko0]
add eax, 0x60
xor edx, dword [esi + 0x100573fc]
xor edx, dword [eax - 0x1c]
mov ecx, edx
mov dword [eax - 4], ecx
xor ecx, dword [eax - 0x18]
mov dword [eax], ecx
xor ecx, dword [eax - 0x14]
mov dword [eax + 4], ecx
xor ecx, dword [eax - 0x10]
mov dword [eax + 8], ecx
xor ecx, dword [eax - 0xc]
mov dword [eax + 0xc], ecx
xor ecx, dword [eax - 8]
cmp esi, 0x20
mov dword [eax + 0x10], ecx
jb 0x10001140
jmp 0x10001498
mov eax, ebp
xor esi, esi
mov edi, edi
mov edx, ecx
ror edx, 8
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1005a028]
xor ecx, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor ecx, dword [edx*4 + str.cwko0]
xor ecx, dword [esi + 0x10057400]
xor ecx, dword [eax - 4]
mov dword [eax + 0xc], ecx
xor ecx, dword [eax]
mov dword [eax + 0x10], ecx
xor ecx, dword [eax + 4]
mov dword [eax + 0x14], ecx
xor ecx, dword [eax + 8]
mov dword [eax + 0x18], ecx
ror ecx, 8
mov ebx, ecx
shr ebx, 0x10
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1005a028]
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059c28]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059828]
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [esi + 0x10057404]
xor edx, dword [eax + 0xc]
mov dword [eax + 0x1c], edx
xor edx, dword [eax + 0x10]
mov dword [eax + 0x20], edx
xor edx, dword [eax + 0x14]
mov dword [eax + 0x24], edx
xor edx, dword [eax + 0x18]
mov dword [eax + 0x28], edx
ror edx, 8
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1005a028]
xor ecx, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor ecx, dword [edx*4 + str.cwko0]
xor ecx, dword [esi + 0x10057408]
xor ecx, dword [eax + 0x1c]
mov dword [eax + 0x2c], ecx
xor ecx, dword [eax + 0x20]
mov dword [eax + 0x30], ecx
xor ecx, dword [eax + 0x24]
mov dword [eax + 0x34], ecx
xor ecx, dword [eax + 0x28]
mov dword [eax + 0x38], ecx
ror ecx, 8
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1005a028]
xor edx, dword [ebx*4 + 0x10059c28]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x10059828]
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
add esi, 0x14
xor edx, dword [esi + 0x100573f8]
add eax, 0x50
xor edx, dword [eax - 0x24]
mov dword [eax - 0x14], edx
xor edx, dword [eax - 0x20]
mov dword [eax - 0x10], edx
xor edx, dword [eax - 0x1c]
mov dword [eax - 0xc], edx
xor edx, dword [eax - 0x18]
mov dword [eax - 8], edx
ror edx, 8
mov ebx, edx
shr ebx, 0x10
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1005a028]
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059c28]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10059828]
movzx edx, dl
xor ecx, dword [edx*4 + str.cwko0]
xor ecx, dword [esi + 0x100573fc]
xor ecx, dword [eax - 0x14]
mov dword [eax - 4], ecx
xor ecx, dword [eax - 0x10]
mov dword [eax], ecx
xor ecx, dword [eax - 0xc]
mov dword [eax + 4], ecx
xor ecx, dword [eax - 8]
cmp esi, 0x28
mov dword [eax + 8], ecx
jb 0x100012e0
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 4]
mov ecx, dword [ebp]
mov dword [edi + 0xf4], eax
mov eax, dword [edi + 0xc]
mov dword [edi + 0xfc], eax
mov dword [edi + 0xf8], ecx
mov ecx, dword [edi + 0x10]
lea eax, [edx + 0x18]
cmp eax, 4
mov dword [edi + 0x100], ecx
jbe 0x10001552
add edi, 0x14
add eax, 0xfffffffc
mov dword [esp + 0x14], eax
mov esi, dword [edi]
mov eax, esi
shr eax, 7
and eax, 0x1010101
imul eax, eax, 0x1b
mov edx, esi
and edx, 0xff7f7f7f
add edx, edx
xor eax, edx
mov ecx, eax
shr ecx, 7
and ecx, 0x1010101
imul ecx, ecx, 0x1b
mov edx, eax
and edx, 0xff7f7f7f
add edx, edx
xor ecx, edx
mov edx, ecx
shr edx, 7
and edx, 0x1010101
imul edx, edx, 0x1b
mov ebx, ecx
and ebx, 0xff7f7f7f
add ebx, ebx
xor edx, ebx
xor esi, edx
mov ebx, ecx
xor ebx, esi
ror ebx, 0x10
mov ebp, eax
xor ebp, esi
ror ebp, 8
xor ebx, ebp
ror esi, 0x18
xor ebx, esi
xor ebx, edx
xor ebx, ecx
xor ebx, eax
mov dword [edi + 0xf0], ebx
add edi, 4
sub dword [esp + 0x14], 1
jne 0x100014d6
pop esi
pop ebp
pop ebx
mov al, 1
pop edi
ret