Function at 0x975780
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov edi, dword [esp + 0x1c]
cmp edi, 0x80
jne 0x975797
mov eax, 0xa
jmp 0x9757bc
cmp edi, 0x100
je 0x9757b7
mov eax, 0xffffffe0
cmp edi, 0xc0
jne 0x9759ea
mov eax, 0xc
jmp 0x9757bc
mov eax, 0xe
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
cmp byte [0xc299c0], 0
jne 0x9757db
mov esi, ecx
call fcn.009759f0
mov ecx, esi
mov byte [0xc299c0], 1
lea esi, [ecx + 8]
shr edi, 5
mov dword [ecx + 4], esi
je 0x975817
mov eax, dword [esp + 0x18]
xor edx, edx
movzx ebp, byte [eax + edx*4 + 1]
movzx ebx, byte [eax + edx*4]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [eax + edx*4 + 2]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [eax + edx*4 + 3]
shl ebp, 0x18
or ebp, ebx
mov dword [ecx + edx*4 + 8], ebp
inc edx
cmp edx, edi
jne 0x9757ec
mov edx, dword [ecx]
cmp edx, 0xa
je 0x975900
cmp edx, 0xc
je 0x97596f
xor eax, eax
cmp edx, 0xe
jne 0x9759ea
mov edi, dword [esi]
xor ebp, ebp
mov ebx, dword [esi + 0x1c]
xor edi, dword [ebp*4 + 0xc299c4]
inc ebp
mov edx, ebx
movzx eax, bh
shr edx, 0x10
movzx eax, byte [eax + 0xc299ec]
movzx edx, dl
movzx edx, byte [edx + 0xc299ec]
shl edx, 8
xor edx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax + 0xc299ec]
shl eax, 0x10
xor eax, edx
movzx edx, bl
movzx edx, byte [edx + 0xc299ec]
shl edx, 0x18
xor edx, eax
xor edi, edx
mov dword [esi + 0x20], edi
mov ecx, dword [esi + 4]
xor ecx, edi
mov dword [esi + 0x24], ecx
xor ecx, dword [esi + 8]
mov dword [esi + 0x28], ecx
xor ecx, dword [esi + 0xc]
mov edx, ecx
mov dword [esi + 0x2c], ecx
movzx eax, ch
shr edx, 0x10
movzx eax, byte [eax + 0xc299ec]
movzx edx, dl
movzx edx, byte [edx + 0xc299ec]
shl eax, 8
shl edx, 0x10
xor edx, eax
movzx eax, cl
shr ecx, 0x18
movzx eax, byte [eax + 0xc299ec]
movzx ecx, byte [ecx + 0xc299ec]
xor eax, dword [esi + 0x10]
shl ecx, 0x18
xor ecx, edx
xor ecx, eax
mov dword [esi + 0x30], ecx
xor ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
xor ecx, dword [esi + 0x18]
mov dword [esi + 0x38], ecx
xor ecx, ebx
cmp ebp, 7
mov dword [esi + 0x3c], ecx
lea esi, [esi + 0x20]
jne 0x97583a
jmp 0x9759e8
mov edx, dword [esi]
xor ebp, ebp
mov eax, dword [esi + 0xc]
xor edx, dword [ebp*4 + 0xc299c4]
inc ebp
mov ebx, eax
movzx edi, ah
mov ecx, eax
shr ebx, 0x10
movzx edi, byte [edi + 0xc299ec]
shr ecx, 0x18
movzx ebx, bl
movzx ecx, byte [ecx + 0xc299ec]
movzx ebx, byte [ebx + 0xc299ec]
shl ecx, 0x10
shl ebx, 8
xor ebx, edi
movzx edi, al
movzx edi, byte [edi + 0xc299ec]
xor ecx, ebx
shl edi, 0x18
xor edi, ecx
xor edx, edi
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 4]
xor ecx, edx
mov dword [esi + 0x14], ecx
xor ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
xor ecx, eax
cmp ebp, 0xa
mov dword [esi + 0x1c], ecx
lea esi, [esi + 0x10]
jne 0x975904
jmp 0x9759e8
mov edx, dword [esi]
xor ecx, ecx
mov eax, dword [esi + 0x14]
xor edx, dword [ecx*4 + 0xc299c4]
inc ecx
mov ebx, eax
movzx edi, ah
shr ebx, 0x10
movzx ebp, byte [edi + 0xc299ec]
movzx edi, bl
mov ebx, eax
movzx edi, byte [edi + 0xc299ec]
shr ebx, 0x18
movzx ebx, byte [ebx + 0xc299ec]
shl edi, 8
xor edi, ebp
shl ebx, 0x10
xor ebx, edi
movzx edi, al
movzx edi, byte [edi + 0xc299ec]
shl edi, 0x18
xor edi, ebx
xor edx, edi
mov dword [esi + 0x18], edx
mov edi, dword [esi + 4]
xor edi, edx
mov dword [esi + 0x1c], edi
xor edi, dword [esi + 8]
mov dword [esi + 0x20], edi
xor edi, dword [esi + 0xc]
mov dword [esi + 0x24], edi
xor edi, dword [esi + 0x10]
mov dword [esi + 0x28], edi
xor edi, eax
cmp ecx, 8
mov dword [esi + 0x2c], edi
lea esi, [esi + 0x18]
jne 0x975973
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret