Function at 0x6fd5d8b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov eax, ecx
push edi
push esi
push ebx
sub esp, 0x10
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
movzx edx, byte [esp + 0x2c]
cmp ebx, 3
jbe 0x6fd5d960
test dl, dl
je 0x6fd5d9a0
mov edi, 0x1b
mov ecx, 0x15
movzx edx, byte [eax + 0x3b]
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x10], edx
movzx edx, byte [eax + 0x3b]
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x14], edx
lea ebp, [esi + ecx*8 + 0x10]
mov esi, esi
lea edi, [edi]
movzx edx, byte [eax + ecx + 0x3b]
add ebp, 8
mov edx, dword [edx*4 + 0x70764240]
mov dword [ebp - 8], edx
movzx edx, byte [eax + ecx + 0x3b]
inc ecx
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [ebp - 4], edx
cmp edi, ecx
jg 0x6fd5d910
lea ecx, [ebx + 1]
lea edi, [ebx - 1]
shr ecx, 2
lea edx, [ebx + ebx*2 - 6]
shr edi, 2
mov dword [esp], ecx
add edi, edx
jmp 0x6fd5da07
je 0x6fd5df31
test dl, dl
je 0x6fd5df00
movzx edx, byte [ecx + 0x3b]
mov edi, 9
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x10], edx
movzx edx, byte [ecx + 0x3b]
mov ecx, 1
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x14], edx
jmp 0x6fd5d903
mov edi, 0xf
mov ecx, 0xc
movzx edx, byte [eax + 0x56]
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x10], edx
movzx edx, byte [eax + 0x56]
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x14], edx
lea ebp, [esi + ecx*8 + 0x10]
movzx edx, byte [eax + ecx + 0x56]
add ebp, 8
mov edx, dword [edx*4 + 0x70764240]
mov dword [ebp - 8], edx
movzx edx, byte [eax + ecx + 0x56]
inc ecx
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [ebp - 4], edx
cmp edi, ecx
jg 0x6fd5d9d0
lea edi, [ebx - 2]
mov dword [esp], edi
mov edi, 0xf
lea edx, [ebx + ebx - 1]
mov ebp, edx
lea edx, [eax + 0x65]
mov dword [esp + 0xc], edx
add edx, edi
movzx ebx, byte [edx]
mov dword [esp + 4], ebp
mov ebx, dword [ebx*4 + 0x70764240]
mov dword [esi + 0x160], ebx
mov ebx, 1
movzx edx, byte [edx]
xor dl, 1
cmp ebp, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
jbe 0x6fd5dc8b
movzx ecx, byte [esp]
shr ebx, cl
mov ecx, dword [esp + 0xc]
add ebx, edi
add ebx, ecx
movzx ebp, byte [ebx]
mov dword [esp + 8], ecx
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x164], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ebp, dword [ebx*4 + 0x70764240]
mov ebx, 2
add edx, ebp
cmp dword [esp + 4], 2
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x168], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 3
add edx, ecx
cmp dword [esp + 4], 3
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x16c], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 4
add edx, ecx
cmp dword [esp + 4], 4
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x170], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 5
add edx, ecx
cmp dword [esp + 4], 5
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x174], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 6
add edx, ecx
cmp dword [esp + 4], 6
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x178], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 7
add edx, ecx
cmp dword [esp + 4], 7
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x17c], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 8
add edx, ecx
cmp dword [esp + 4], 8
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x180], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 9
add edx, ecx
cmp dword [esp + 4], 9
je 0x6fd5dc8b
movzx ecx, byte [esp]
mov ebp, dword [esp + 8]
shr ebx, cl
add ebx, edi
add ebx, ebp
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x184], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
mov ebx, 0xa
add edx, ecx
add eax, 0x77
mov dword [esi + ebx*4 + 0x160], edx
lea edx, [eax + edi]
movzx ebx, byte [edx]
mov ebx, dword [ebx*4 + 0x70764240]
mov dword [esi + 0x188], ebx
movzx edx, byte [edx]
xor dl, 1
cmp dword [esp + 4], 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
jbe 0x6fd5dfd0
movzx ecx, byte [esp]
mov ebx, 1
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x18c], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ebp, dword [ebx*4 + 0x70764240]
add edx, ebp
cmp dword [esp + 4], 2
je 0x6fd5dfc0
movzx ecx, byte [esp]
mov ebx, 2
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x190], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
add edx, ecx
cmp dword [esp + 4], 3
je 0x6fd5dfb0
movzx ecx, byte [esp]
mov ebx, 3
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x194], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ebp, dword [ebx*4 + 0x70764240]
add edx, ebp
cmp dword [esp + 4], 4
je 0x6fd5dfa0
movzx ecx, byte [esp]
mov ebx, 4
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x198], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
add edx, ecx
cmp dword [esp + 4], 5
je 0x6fd5df90
movzx ecx, byte [esp]
mov ebx, 5
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x19c], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ebp, dword [ebx*4 + 0x70764240]
add edx, ebp
cmp dword [esp + 4], 6
je 0x6fd5df80
movzx ecx, byte [esp]
mov ebx, 6
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x1a0], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
add edx, ecx
cmp dword [esp + 4], 7
je 0x6fd5df70
movzx ecx, byte [esp]
mov ebx, 7
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x1a4], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ebp, dword [ebx*4 + 0x70764240]
add edx, ebp
cmp dword [esp + 4], 8
je 0x6fd5df60
movzx ecx, byte [esp]
mov ebx, 8
shr ebx, cl
add ebx, edi
add ebx, eax
movzx ebp, byte [ebx]
mov ecx, dword [ebp*4 + 0x70764240]
add ecx, edx
mov dword [esi + 0x1a8], ecx
movzx ebx, byte [ebx]
xor bl, 1
movzx ebx, bl
mov ecx, dword [ebx*4 + 0x70764240]
add edx, ecx
cmp dword [esp + 4], 9
je 0x6fd5df50
movzx ecx, byte [esp]
mov ebx, 9
shr ebx, cl
add edi, ebx
add eax, edi
movzx ecx, byte [eax]
mov edi, dword [ecx*4 + 0x70764240]
add edi, edx
mov dword [esi + 0x1ac], edi
movzx eax, byte [eax]
xor al, 1
movzx eax, al
mov ecx, dword [eax*4 + 0x70764240]
mov eax, 0xa
add edx, ecx
mov dword [esi + eax*4 + 0x188], edx
add esp, 0x10
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
movzx edx, byte [ecx + 0x56]
mov edi, 9
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x10], edx
movzx edx, byte [ecx + 0x56]
mov ecx, 1
xor dl, 1
movzx edx, dl
mov edx, dword [edx*4 + 0x70764240]
mov dword [esi + 0x14], edx
jmp 0x6fd5d9cc
test dl, dl
jne 0x6fd5dfe0
mov edi, 0xc
mov ecx, 9
jmp 0x6fd5d9aa
mov eax, 9
jmp 0x6fd5deea
mov eax, 8
jmp 0x6fd5deea
mov eax, 7
jmp 0x6fd5deea
mov eax, 6
jmp 0x6fd5deea
mov eax, 5
jmp 0x6fd5deea
mov eax, 4
jmp 0x6fd5deea
mov eax, 3
jmp 0x6fd5deea
mov eax, 2
jmp 0x6fd5deea
mov eax, 1
jmp 0x6fd5deea
mov edi, 0x15
mov ecx, 9
jmp 0x6fd5d8e1