Function at 0x2076d5a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xbc
push ebx
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x7d]
mov byte [esp + 0x7c], dl
mov dword [esp + 0x24], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x15
xor eax, eax
lea edi, [esp + 0x28]
mov ebx, dword [esp + 0xe0]
rep stosd dword es:[edi], eax
mov ecx, 0x16
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov ecx, 0x14
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xec]
cmp ebx, 0x3a
mov dword [esp + 0x18], edx
mov dword [eax], edx
ja case.default.0x2076d77b
cmp ebx, edx
lea esi, [esp + 0x7c]
je 0x2076d613
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd0]
push edi
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x28], ecx
call fcn.2076cfa0
add esp, 4
test al, al
jne 0x2076d959
mov edx, dword [edi]
lea edi, [ebx + 8]
and dl, 0x10
lea eax, [ebx - 8]
neg dl
sbb edx, edx
and edx, 0x14
shr edi, 4
add edx, 0x22000c
inc edi
test al, 0xf
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
je 0x2076d65f
cmp ebx, 0x3a
jne 0x2076d664
dec edi
mov dword [esp + 0x10], edi
cmp edi, 4
ja case.default.0x2076d77b
mov eax, dword [esp + 0xd4]
cmp eax, 0x33
jne 0x2076d683
mov dword [esp + 0x14], 2
jmp 0x2076d694
cmp eax, 1
mov dword [esp + 0x14], 3
je 0x2076d694
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
mov ebp, edi
shl ebp, 4
shl eax, 4
lea ecx, [esp + 0x32]
add ebp, 8
add eax, 8
push 2
push ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ebp
mov byte [esp + 0x34], 8
call fcn.2076b9e0
mov dl, byte [esp + 0xd4]
mov al, byte [esp + 0xd8]
mov cl, byte [esi]
mov byte [esp + 0x34], dl
mov dl, byte [esi + 1]
mov byte [esp + 0x35], al
mov al, byte [esi + 2]
mov byte [esp + 0x37], dl
mov byte [esp + 0x36], cl
mov cl, byte [esi + 3]
lea edx, [esp + 0x3a]
push 2
push edx
mov byte [esp + 0x40], al
mov byte [esp + 0x41], cl
call fcn.2076b9e0
cmp ebx, 4
jbe 0x2076d74b
lea ecx, [ebx - 4]
add esi, 4
mov eax, ecx
lea edi, [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, ebp
sub eax, ebx
and ecx, 3
sub eax, 0xf
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x2076d72f
lea ecx, [esp + ebx + 0x38]
push eax
push ecx
call fcn.2076b9e0
mov edi, dword [esp + 0x10]
mov cl, byte [esp + ebp + 0x28]
cmp ebx, 4
mov byte [esp + 0x10], cl
jbe 0x2076d75b
sub bl, 4
and ebx, 0xff
jmp 0x2076d75d
lea edx, [ebp - 0x13]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.2076b9e0
jmp 0x2076d733
xor ebx, ebx
mov byte [esp + ebp + 0x29], bl
mov dl, byte [esp + 0x3a]
mov byte [esp + ebp + 0x2a], dl
mov al, byte [esp + 0x3b]
dec edi
mov byte [esp + ebp + 0x2b], al
cmp edi, 3
ja case.default.0x2076d77b
jmp dword [edi*4 + 0x2076d964]
mov esi, dword [esp + 0xd0]
lea ecx, [esp + 0x64]
push ecx
mov edx, dword [esi + 0x30]
push edx
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x54]
mov bl, byte [esp + eax + 0x64]
xor bl, cl
mov byte [esp + eax + 0x64], bl
inc eax
cmp eax, 0x10
jb 0x2076d79c
jmp 0x2076d7b9
mov esi, dword [esp + 0xd0]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x54]
push edx
push eax
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x44]
mov bl, byte [esp + eax + 0x54]
xor bl, cl
mov byte [esp + eax + 0x54], bl
inc eax
cmp eax, 0x10
jb 0x2076d7cc
jmp 0x2076d7e9
mov esi, dword [esp + 0xd0]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x44]
push edx
push eax
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x34]
mov bl, byte [esp + eax + 0x44]
xor bl, cl
mov byte [esp + eax + 0x44], bl
inc eax
cmp eax, 0x10
jb 0x2076d7fc
jmp 0x2076d819
mov esi, dword [esp + 0xd0]
mov eax, dword [esi + 0x30]
lea edx, [esp + 0x34]
push edx
push eax
call fcn.2076bd30
lea ecx, [esp + 0x34]
push ecx
call fcn.2077cfd0
mov ebp, dword [esp + 0xf0]
add esp, 0xc
lea edx, [esp + 0x18]
test ebp, ebp
push edx
jne 0x2076d872
mov ecx, dword [esp + 0x20]
push 0
push 0
lea eax, [esp + 0x30]
push 0x58
push eax
push ecx
call fcn.2076c590
push esi
mov edi, eax
call fcn.2076d000
add esp, 0x1c
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x80]
push edi
push eax
lea ecx, [esp + 0x30]
push 0x58
push ecx
push edx
call fcn.2076c590
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x2076d8b0
push esi
call fcn.2076d000
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0x18], edi
je 0x2076d8ce
push esi
call fcn.2076d000
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x30]
push eax
push ecx
lea eax, [esp + 0x84]
push edx
push eax
call fcn.2076d280
mov ebx, eax
add esp, 0x10
test bl, bl
jne 0x2076d93e
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xe8]
lea edi, [esp + 0x7e]
xor edx, edx
mov dword [ecx], esi
mov eax, ebp
sub edi, ebp
test esi, esi
jbe 0x2076d91d
mov cl, byte [edi + eax]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x2076d90c
mov ecx, esi
lea esi, [esp + 0x84]
mov edx, ecx
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xd0]
push esi
call fcn.2076d000
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov ax, 0x1d10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret