Function at 0x2076d980
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xb0
push ebx
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x71]
mov byte [esp + 0x70], dl
mov dword [esp + 0x18], 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 + 0x1c]
mov ebx, dword [esp + 0xd4]
rep stosd dword es:[edi], eax
mov ecx, 0x16
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, 0x14
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xe0]
cmp ebx, 0x3a
mov dword [esp + 0x14], edx
mov dword [eax], edx
jbe 0x2076d9ef
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xb0
ret
cmp ebx, edx
lea esi, [esp + 0x70]
je 0x2076d9fe
mov esi, dword [esp + 0xd0]
mov ebp, dword [esp + 0xc4]
push ebp
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
call fcn.2076cfa0
add esp, 4
test al, al
jne 0x2076dc7e
mov edx, dword [ebp]
lea eax, [esp + 0x26]
and dl, 0x10
push 2
neg dl
sbb edx, edx
push eax
and edx, 0x14
mov dword [esp + 0x24], 0x48
add edx, 0x22000c
mov byte [esp + 0x28], 7
mov dword [esp + 0x18], edx
call fcn.2076b9e0
mov cl, byte [esp + 0xc8]
mov dl, byte [esp + 0xcc]
mov al, byte [esi]
mov byte [esp + 0x28], cl
mov cl, byte [esi + 1]
mov byte [esp + 0x29], dl
mov dl, byte [esi + 2]
mov byte [esp + 0x2b], cl
mov byte [esp + 0x2a], al
mov al, byte [esi + 3]
lea ecx, [esp + 0x2e]
push 2
push ecx
mov byte [esp + 0x34], dl
mov byte [esp + 0x35], al
call fcn.2076b9e0
cmp ebx, 4
jbe 0x2076daba
lea ecx, [ebx - 4]
add esi, 4
mov edx, ecx
lea edi, [esp + 0x30]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, 0x39
mov ecx, edx
sub eax, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x2076dac6
push eax
lea eax, [esp + ebx + 0x30]
push eax
jmp 0x2076dac1
lea ecx, [esp + 0x30]
push 0x35
push ecx
call fcn.2076b9e0
cmp ebx, 4
jbe 0x2076dad4
sub bl, 4
mov byte [esp + 0x65], bl
jmp 0x2076dad9
mov byte [esp + 0x65], 0
mov dl, byte [esp + 0x2e]
mov al, byte [esp + 0x2f]
mov byte [esp + 0x66], dl
mov edx, dword [ebp + 0x30]
lea ecx, [esp + 0x58]
mov byte [esp + 0x67], al
push ecx
push edx
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x48]
mov bl, byte [esp + eax + 0x58]
xor bl, cl
mov byte [esp + eax + 0x58], bl
inc eax
cmp eax, 0x10
jb 0x2076dafc
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x48]
push edx
push eax
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x38]
mov bl, byte [esp + eax + 0x48]
xor bl, cl
mov byte [esp + eax + 0x48], bl
inc eax
cmp eax, 0x10
jb 0x2076db23
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x38]
push edx
push eax
call fcn.2076bd30
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x28]
mov bl, byte [esp + eax + 0x38]
xor bl, cl
mov byte [esp + eax + 0x38], bl
inc eax
cmp eax, 0x10
jb 0x2076db4a
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.2076bd30
lea ecx, [esp + 0x28]
push ecx
call fcn.2077cfd0
mov edi, dword [esp + 0xe4]
add esp, 0xc
lea edx, [esp + 0x14]
test edi, edi
push edx
jne 0x2076dbb7
mov ecx, dword [esp + 0x14]
push 0
push 0
lea eax, [esp + 0x24]
push 0x58
push eax
push ecx
call fcn.2076c590
push ebp
mov esi, eax
call fcn.2076d000
add esp, 0x1c
mov ax, si
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x74]
push 0x48
push eax
lea ecx, [esp + 0x24]
push 0x58
push ecx
push edx
call fcn.2076c590
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x2076dbef
push ebp
call fcn.2076d000
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
cmp dword [esp + 0x14], 0x48
je 0x2076dc0e
push ebp
call fcn.2076d000
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.2076c6b0
add esp, 8
mov dword [esp + 0x10], eax
test al, al
jne 0x2076dc70
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd8]
mov eax, edi
mov dword [edx], esi
lea edi, [esp + 0x72]
xor edx, edx
sub edi, ebx
test esi, esi
jbe 0x2076dc59
mov cl, byte [edi + eax]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x2076dc48
mov ecx, esi
lea esi, [esp + 0x78]
mov edx, ecx
lea edi, [ebx + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
call fcn.2076d000
mov ax, word [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret