Function at 0xc45da2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov al, byte [ecx]
mov dword [ebp - 8], edx
mov edx, dword [0xc7712c]
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov byte [ebp - 1], al
mov eax, 0xc70be0
lea eax, [eax + 2]
xor edx, 0x502436e5
cmp word [eax], cx
jne 0xc45dc3
push ebx
push esi
push edi
push 0xc
mov eax, ecx
lea edi, [ebp - 0x54]
pop ecx
mov esi, 0xc702e0
and edx, 0xf7241783
rep movsd dword es:[edi], dword [esi]
push 0x66
pop ebx
xor edi, edi
cmp bx, word [ebp - 0x54]
jne 0xc45e16
mov esi, ebx
mov ecx, edi
test si, si
je 0xc45e16
cmp word [ebp + ecx - 0x54], di
je 0xc45e16
inc eax
lea ecx, [eax + eax]
movzx esi, word [ecx + 0xc70de0]
cmp si, word [ebp + ecx - 0x54]
je 0xc45df8
movzx ecx, byte [eax*2 + 0xc70de0]
movzx eax, byte [ebp + eax*2 - 0x54]
sub ecx, eax
cmp ecx, 0x85
jbe 0xc45e3a
mov eax, dword [0xc7715c]
xor edx, 0x3dc5c205
jmp 0xc45e48
mov eax, dword [ebp - 8]
mov edx, dword [0xc770f0]
add eax, 0x1dd19da7
mov cl, byte [ebp - 1]
mov esi, 0xc70310
mov dword [ebp - 0x10], eax
mov eax, edi
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp cl, byte [ebp - 0x24]
jne 0xc45e9f
mov esi, dword [ebp - 0xc]
test cl, cl
je 0xc45e7a
cmp byte [ebp + eax - 0x24], 0
je 0xc45e7a
inc eax
mov cl, byte [esi + eax]
cmp cl, byte [ebp + eax - 0x24]
je 0xc45e65
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jae 0xc45e9f
mov esi, dword [ebp - 0x10]
cmp ecx, 0xe0
jne 0xc45e92
lea esi, [edx + 0x79ce5087]
mov edx, esi
or edx, 0xb8ad2bb
inc ecx
cmp ecx, eax
jb 0xc45e84
xor ecx, ecx
lea edi, [ebp - 0xd4]
mov eax, ecx
mov esi, 0xc70328
push 0x1f
pop ecx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edi, edi
cmp bx, word [ebp - 0xd4]
jne 0xc45ee8
mov esi, ebx
mov ecx, edi
test si, si
je 0xc45ee8
cmp word [ebp + ecx - 0xd4], di
je 0xc45ee8
inc eax
lea ecx, [eax + eax]
movzx esi, word [ecx + 0xc70de0]
cmp si, word [ebp + ecx - 0xd4]
je 0xc45ec4
movzx ecx, byte [eax*2 + 0xc70de0]
movzx eax, byte [ebp + eax*2 - 0xd4]
sub ecx, eax
cmp ecx, 0x1fc1
jbe 0xc45f0a
or edx, 0x8b1b2dd4
jmp 0xc45f10
and edx, 0xf219e58e
imul eax, dword [ebp - 8], 0x8834014b
mov esi, 0xc6f528
mov cl, byte [ebp - 1]
and edx, 0x5af315b4
mov dword [0xc7715c], edx
xor edx, 0xf7f7e1a3
mov dword [0xc77150], edx
mov dword [0xc7712c], eax
mov eax, edi
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp cl, byte [ebp - 0x1c]
jne 0xc45f7a
mov ebx, dword [ebp - 0xc]
test cl, cl
je 0xc45f61
cmp byte [ebp + eax - 0x1c], 0
je 0xc45f61
inc eax
mov cl, byte [ebx + eax]
cmp cl, byte [ebp + eax - 0x1c]
je 0xc45f4c
mov edx, dword [ebp - 8]
push 0x66
pop ebx
cmp dword [ebp - 0xc], eax
jae 0xc45f7d
mov eax, edx
or eax, 0x94c58738
mov dword [0xc7712c], eax
jmp 0xc45f7d
mov edx, dword [ebp - 8]
push 0x22
pop ecx
mov esi, 0xc703b0
lea edi, [ebp - 0xdc]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
cmp bx, word [ebp - 0xdc]
jne 0xc45fc3
mov edx, eax
xor ecx, ecx
test bx, bx
je 0xc45fc0
cmp word [ebp + eax - 0xdc], cx
je 0xc45fc0
inc edx
lea eax, [edx + edx]
movzx ebx, word [eax + 0xc70de0]
cmp bx, word [ebp + eax - 0xdc]
je 0xc45f9c
mov edx, dword [ebp - 8]
pop edi
and edx, 0x9fcb200f
pop esi
mov dword [0xc770f0], edx
pop ebx
leave
ret