Function at 0x2076d280
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
push esi
call fcn.2077cfd0
mov ebp, dword [esp + 0x1c]
add esp, 4
test ebp, ebp
je 0x2076d4e4
mov al, byte [esi + 1]
and al, 0xf
cmp al, 0xf
je 0x2076d2af
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x2076d2bf
jmp dword [eax*4 + 0x2076d570]
xor eax, eax
mov dl, byte [eax + esi + 8]
mov byte [eax + esi], dl
inc eax
cmp eax, 0x40
jb 0x2076d2c8
push esi
push ebp
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [eax + esi + 0x10]
mov dl, byte [eax + esi]
xor dl, cl
mov byte [eax + esi], dl
inc eax
cmp eax, 0x10
jb 0x2076d2e1
lea edi, [esi + 0x10]
push edi
push ebp
call fcn.2076bd30
mov ecx, 0xfffffff0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [ecx + eax]
cmp edx, 0x10
jb 0x2076d309
lea edi, [esi + 0x20]
push edi
push ebp
call fcn.2076bd30
mov ecx, 0xffffffe0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [ecx + eax]
cmp edx, 0x10
jb 0x2076d331
lea eax, [esi + 0x30]
push eax
push ebp
call fcn.2076bd30
mov al, byte [esi + 6]
mov cl, byte [esi + 0x3e]
add esp, 8
cmp al, cl
jne case.0x2076d520.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x3f]
cmp cl, dl
jne case.0x2076d520.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x3c]
cmp dl, cl
jne case.0x2076d520.4
and al, 3
cmp al, 3
je 0x2076d4e4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x30
jb 0x2076d390
push esi
push ebp
call fcn.2076bd30
add esp, 8
xor eax, eax
mov dl, byte [eax + esi + 0x10]
mov bl, byte [eax + esi]
xor bl, dl
mov byte [eax + esi], bl
inc eax
cmp eax, 0x10
jb 0x2076d3a9
lea edi, [esi + 0x10]
push edi
push ebp
call fcn.2076bd30
mov ecx, 0xfffffff0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [eax + ecx]
cmp edx, 0x10
jb 0x2076d3d1
lea eax, [esi + 0x20]
push eax
push ebp
call fcn.2076bd30
mov al, byte [esi + 6]
mov cl, byte [esi + 0x2e]
add esp, 8
cmp al, cl
jne case.0x2076d520.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x2f]
cmp cl, dl
jne case.0x2076d520.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x2c]
cmp dl, cl
jne case.0x2076d520.4
and al, 3
cmp al, 2
je 0x2076d4e4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x20
jb 0x2076d430
push esi
push ebp
call fcn.2076bd30
add esp, 8
xor eax, eax
mov dl, byte [eax + esi + 0x10]
mov bl, byte [eax + esi]
xor bl, dl
mov byte [eax + esi], bl
inc eax
cmp eax, 0x10
jb 0x2076d449
lea eax, [esi + 0x10]
push eax
push ebp
call fcn.2076bd30
mov al, byte [esi + 6]
mov cl, byte [esi + 0x1e]
add esp, 8
cmp al, cl
jne case.0x2076d520.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x1f]
cmp cl, dl
jne case.0x2076d520.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x1c]
cmp dl, cl
jne case.0x2076d520.4
and al, 3
cmp al, 1
je 0x2076d4e4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x10
jb 0x2076d498
push esi
push ebp
call fcn.2076bd30
mov al, byte [esi + 6]
mov cl, byte [esi + 0xe]
add esp, 8
cmp al, cl
jne case.0x2076d520.4
mov dl, byte [esi + 7]
mov cl, byte [esi + 0xf]
cmp dl, cl
jne case.0x2076d520.4
mov cl, byte [esp + 0x20]
mov dl, byte [esi + 0xc]
cmp cl, dl
jne case.0x2076d520.4
test al, 3
je 0x2076d4e4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
ret
mov cl, byte [esi + 4]
mov al, byte [esi + 5]
xor edx, edx
mov dl, byte [esi + 1]
mov edi, edx
add edx, ecx
mov cl, byte [esi + 3]
add eax, edx
mov dl, byte [esi + 2]
add eax, ecx
add edx, eax
xor eax, eax
mov al, byte [esi]
and edx, 0xff
xor edx, eax
je 0x2076d516
pop edi
pop esi
pop ebp
mov ax, 0x1d0d
pop ebx
ret
mov eax, edi
and eax, 0xf
cmp eax, 7
ja case.default.0x2076d520
jmp dword [eax*4 + 0x2076d580]
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d41
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d04
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d0a
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d15
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d42
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d3f
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1dff
pop ebx
ret