Function at 0x445de0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
je 0x445e13
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x445e00
add ecx, 0xfffffffe
and ecx, 0xfffe
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x445e23
add ecx, 2
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp], 0xf00f0e0d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, esp
mov ecx, 0xfb1e3902
nop
nop
movzx edx, byte [eax]
mov esi, ecx
or esi, edx
not esi
lea edi, [ecx + 0x4e1c700]
and edi, edx
or edi, esi
mov edx, edi
and edx, 0xe
xor edi, 0xe
lea edx, [edi + edx*2]
inc dl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xfb1e38fb
jne 0x445e50
mov ebx, dword [esp]
mov eax, dword [0x451440]
test eax, eax
je 0x445ecf
xor ecx, ecx
mov edx, dword [0x451444]
cmp dword [edx + ecx*8], 0xc0a4c970
je 0x445ea0
inc ecx
cmp eax, ecx
jne 0x445e90
jmp 0x445ecf
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x445ecf
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x4c]
push 6
push eax
push dword [0x451448]
call fcn.004417a0
add esp, 0x24
mov ebx, eax
mov dword [esp], 0xb3727153
xor edi, edi
mov ecx, 0x35239313
nop
nop
nop
movzx edx, byte [esp + edi]
mov esi, ecx
and esi, 0x21229001
mov eax, edi
and eax, 2
or eax, esi
xor eax, edx
lea ebp, [edi + 0xec]
and ebp, edx
mov esi, edx
not esi
or esi, ecx
lea edx, [esi + esi]
not edx
add edx, esi
xor eax, 0xebfefced
or ebp, eax
and esi, 0x601a507f
and edx, 0x8be4ac80
or edx, esi
xor edx, 0x8be4ac80
and edx, ebp
add edx, 0x9b1df63
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
mov byte [esp + edi], al
inc edi
dec ecx
cmp edi, 4
jne 0x445ee0
cmp ebx, dword [esp]
jne 0x4460ed
push dword [esp + 0xc]
call fcn.0043e6f0
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0x1060706
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [edx + edx]
and edi, 2
mov ebx, edx
xor ebx, 0xc1
add ebx, edi
xor bl, byte [esp + edx + 0x10]
add bl, 0x3b
mov byte [esp + edx + 0x10], bl
xor edx, 1
add edx, edi
cmp edx, 7
jb 0x445f80
mov edx, dword [esp + 0x10]
mov dword [esp], 0xf00f0e0d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov ebx, esp
mov ebp, 0xfb1e3902
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebx]
mov edi, ebp
or edi, esi
not edi
lea ecx, [ebp + 0x4e1c700]
and ecx, esi
or ecx, edi
mov esi, ecx
and esi, 0xe
xor ecx, 0xe
lea ecx, [ecx + esi*2]
inc cl
mov byte [ebx], cl
inc ebx
dec ebp
cmp ebp, 0xfb1e38fb
jne 0x445fd0
mov ebx, dword [esp]
mov edi, dword [0x451440]
test edi, edi
je 0x446063
xor ebp, ebp
mov esi, dword [0x451444]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + ebp*8], 0xc0a4c970
je 0x446030
inc ebp
cmp edi, ebp
jne 0x446020
jmp 0x446063
mov ebp, dword [esi + ebp*8 + 4]
cmp ebp, ebx
je 0x446063
lea ecx, [esp + 0xc]
lea esi, [esp + 0x18]
push ecx
push dword [esp + 0x24]
push eax
push edx
push esi
push dword [esp + 0x4c]
push 6
push ebp
push dword [0x451448]
mov esi, eax
call fcn.004417a0
add esp, 0x24
mov ebx, eax
mov eax, esi
test ebx, ebx
mov edx, dword [esp + 0x44]
js 0x4460e4
mov esi, dword [esp + 0x40]
test esi, esi
je 0x446078
mov ecx, dword [eax + 4]
mov dword [esi], ecx
cmp dword [esp + 0x48], 0
je 0x4460e4
test edx, edx
je 0x4460db
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x446092
mov edx, ecx
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, dword [esp + 0x44]
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add dword [esp + 8], ecx
lea ebp, [eax + ecx]
add ebp, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, ebp
mov edi, dword [esp + 8]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 8]
test dl, 1
je 0x4460db
and edx, 2
movzx ecx, byte [ebp + edx]
mov byte [esi + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x48]
mov dword [edx], ecx
push eax
call fcn.0043e770
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret