Function at 0x10077b30
Capabilities:
Encode data using xor

Disassembly:
push ebp
xor ecx, ecx
push edi
push esi
push ebx
sub esp, 8
lea eax, [ecx - 1]
mov ebp, ecx
mov edi, ecx
xor ebx, ebx
mov dword [esp + 4], eax
shl ebp, 8
shl edi, 7
mov dword [esp], ebx
jmp 0x10077d52
movzx edx, byte [eax + eax + 0x10332cc1]
xor eax, 1
cmp ecx, 2
movzx eax, al
movzx eax, word [eax + eax + 0x10332b80]
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 3
mov edx, esi
je 0x10077d72
xor esi, 1
movzx edx, dl
mov ebx, esi
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, bl
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
cmp ecx, 4
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 5
je 0x10077d70
mov ebx, esi
xor esi, 1
movzx edx, bl
mov ebx, esi
movzx esi, bl
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
cmp ecx, 6
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 7
je 0x10077d70
mov ebx, esi
xor esi, 1
movzx edx, bl
mov ebx, esi
movzx esi, bl
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
cmp ecx, 8
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 9
je 0x10077d70
mov ebx, esi
xor esi, 1
movzx edx, bl
mov ebx, esi
movzx esi, bl
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
cmp ecx, 0xa
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 0xb
je 0x10077d70
mov ebx, esi
xor esi, 1
movzx edx, bl
mov ebx, esi
movzx esi, bl
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
cmp ecx, 0xc
je 0x10077d72
movzx esi, dl
xor edx, 1
movzx edx, dl
movzx esi, byte [esi + esi + 0x10332cc1]
movzx edx, word [edx + edx + 0x10332b80]
add eax, edx
cmp ecx, 0xe
jne 0x10077d62
mov ebx, esi
xor esi, 1
movzx edx, bl
mov ebx, esi
movzx esi, bl
movzx edx, byte [edx + edx + 0x10332cc1]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
mov ebx, dword [esp]
add eax, 0x100
add dword [esp], 1
cmp dword [esp], 0x80
mov word [ebp + ebx*2 + 0x104c5cc0], ax
mov byte [edi + ebx + 0x104c5540], dl
je 0x10077d90
mov eax, dword [esp]
cmp ecx, 1
mov esi, eax
jg 0x10077b54
xor eax, eax
cmp dword [esp + 4], 0xc
mov edx, esi
ja 0x10077d2e
jmp 0x10077d72
mov edx, esi
movzx esi, dl
movzx edx, byte [esi + esi + 0x10332cc0]
movzx esi, word [esi + esi + 0x10332b80]
add eax, esi
jmp 0x10077d2e
add ecx, 1
cmp ecx, 0xf
jne 0x10077b39
xor eax, eax
nop
movzx edx, byte [eax + eax + 0x10332cc1]
movzx ecx, dl
xor edx, 1
movzx ebx, byte [ecx + ecx + 0x10332cc1]
mov ecx, eax
movzx edx, dl
xor ecx, 1
movzx edx, word [edx + edx + 0x10332b80]
movzx ecx, cl
movzx esi, word [ecx + ecx + 0x10332b80]
add esi, edx
movzx edx, bl
xor ebx, 1
movzx ecx, byte [edx + edx + 0x10332cc1]
movzx edx, bl
movzx edx, word [edx + edx + 0x10332b80]
lea ebx, [esi + edx]
movzx edx, cl
xor ecx, 1
movzx edx, byte [edx + edx + 0x10332cc1]
movzx ecx, cl
movzx ecx, word [ecx + ecx + 0x10332b80]
add ebx, ecx
movzx ecx, dl
xor edx, 1
movzx ecx, byte [ecx + ecx + 0x10332cc1]
movzx edx, dl
movzx edx, word [edx + edx + 0x10332b80]
mov byte [eax + 0x1041b780], cl
lea edx, [ebx + edx + 0x100]
mov word [eax + eax + 0x1041b680], dx
add eax, 1
cmp eax, 0x80
jne 0x10077da0
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret