Function at 0x445dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp], 0xd0cfcecd
mov dword [esp + 4], 0
mov eax, 0xda70ddad
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x258f2253]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x9f
mov byte [esp + eax + 0x258f2253], cl
inc eax
cmp eax, 0xda70ddb5
jne 0x445df0
mov eax, dword [esp]
mov esi, dword [0x4521f4]
test esi, esi
je 0x445e6c
xor ecx, ecx
mov edx, dword [0x4521f8]
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x8784ccde
je 0x445e40
inc ecx
cmp esi, ecx
jne 0x445e30
jmp 0x445e6c
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x445e6c
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 6
push dword [0x4521fc]
push edx
call fcn.00442500
add esp, 0x24
mov dword [esp], 0xb10e0f69
mov dword [esp + 4], 0
mov ebx, 0x74ad1f
mov ecx, 0x70b52e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebx - 0x74ad1f]
mov esi, ecx
and esi, 0x60a50e2
mov ebp, ebx
and ebp, 0x64051d
sub ebp, esi
mov edi, ebp
and edi, edx
mov esi, edi
xor ebp, edx
mov edx, edi
lea ebp, [ebp + edi*2]
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
and esi, 0x7d
imul esi, edi
add edx, esi
mov esi, ebp
not esi
and esi, edx
not edx
and edx, ebp
sub edx, esi
add dl, 0xcf
mov byte [esp + ebx - 0x74ad1f], dl
inc ebx
dec ecx
cmp ebx, 0x74ad27
jne 0x445e90
cmp eax, dword [esp]
jne 0x4460c7
push dword [esp + 0xc]
call fcn.0043fa10
add esp, 4
mov edi, eax
mov ebp, dword [esp + 0xc]
mov dword [esp], 0xd0cfcecd
mov dword [esp + 4], 0
mov edx, 0xda70ddad
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0x258f2253]
mov ecx, ebx
and ecx, edx
add cl, cl
sub bl, cl
movzx ecx, bl
add ecx, edx
add cl, 0x9f
mov byte [esp + edx + 0x258f2253], cl
inc edx
cmp edx, 0xda70ddb5
jne 0x445f20
mov ecx, dword [esp]
mov dword [esp + 8], ecx
mov edx, dword [0x4521f4]
test edx, edx
je 0x445f82
mov ecx, edi
xor esi, esi
mov edi, dword [0x4521f8]
mov ebx, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x8784ccde
je 0x445f88
inc esi
cmp edx, esi
jne 0x445f70
mov edi, ecx
jmp 0x445fbe
mov ebx, dword [esp + 0x34]
jmp 0x445fbe
mov edx, dword [edi + esi*8 + 4]
cmp edx, dword [esp + 8]
mov edi, ecx
je 0x445fbe
lea ecx, [esp + 0xc]
push ecx
push ebp
push edi
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 6
push dword [0x4521fc]
push edx
mov esi, eax
call fcn.00442500
add esp, 0x24
mov dword [esp + 8], eax
mov eax, esi
test ebx, ebx
je 0x4460ba
cmp dword [esp + 8], 0
js 0x4460ba
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x4460b3
mov ecx, dword [edi + 0xc]
shr ecx, 1
mov edx, dword [ebx]
cmp edx, ecx
jb 0x445fea
mov edx, ecx
test edx, edx
je 0x4460ad
add eax, 0x10
mov ecx, edx
and ecx, 3
mov dword [esp + 0x10], edi
je 0x44603d
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor ebx, ebx
test si, si
setne bl
lea eax, [eax + ebx*2]
mov word [ebp], si
add ebp, 2
inc edi
cmp ecx, edi
jne 0x446010
mov esi, edx
sub esi, edi
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
cmp edx, 4
jae 0x446050
jmp 0x4460ad
mov esi, edx
cmp edx, 4
jb 0x4460ad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ebp
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebp], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebp + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebp + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebp + 6], cx
add ebp, 8
lea eax, [edi + eax*2]
add esi, 0xfffffffc
jne 0x446050
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov word [ebp], 0
mov eax, dword [edi + 0xc]
shr eax, 1
mov dword [ebx], eax
push edi
call fcn.0043fae0
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret