Function at 0x441cb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp], 0xd8dbdac5
mov word [esp + 4], 0
mov eax, 0xf
mov ecx, 0x10
nop
mov esi, ecx
and esi, 0x14
mov edx, eax
and edx, 0xb
or edx, esi
xor dl, byte [esp + eax - 0xf]
xor dl, 0xb4
add dl, 0x95
mov byte [esp + eax - 0xf], dl
inc eax
dec ecx
cmp eax, 0x15
jne 0x441cd0
mov eax, dword [esp]
mov esi, dword [0x44e0c0]
test esi, esi
je 0x441d4c
xor ecx, ecx
mov edx, dword [0x44e0c4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3052ea03
je 0x441d20
inc ecx
cmp esi, ecx
jne 0x441d10
jmp 0x441d4c
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x441d4c
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44e0c8]
call fcn.0043eca0
add esp, 0x24
mov dword [esp + 0xc], eax
mov dword [esp], 0xa3e2e1c3
mov edi, 0xec80e4a7
mov esi, 0x137f1b58
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi + 0x137f1b59]
lea ebx, [edi + 1]
mov edx, ebx
and edx, ebp
mov ecx, edx
and ecx, 2
mov eax, edx
or edx, 2
imul edx, ecx
xor ecx, 2
and eax, 0xffffffa9
imul eax, ecx
add edx, eax
mov ecx, edi
sub ecx, edx
lea eax, [esi + edx]
xor eax, ebp
and ecx, ebp
add ecx, ecx
sub ecx, eax
add cl, 0xb8
mov byte [esp + edi + 0x137f1b59], cl
dec esi
mov edi, ebx
cmp ebx, 0xec80e4ab
jne 0x441d70
mov esi, dword [esp + 0xc]
cmp esi, dword [esp]
jne 0x441f90
push dword [esp + 0x10]
call fcn.0043c7d0
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp], 0xd8dbdac5
mov word [esp + 4], 0
mov edi, 0xf
mov esi, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, esi
and ebx, 0x14
mov edx, edi
and edx, 0xb
or edx, ebx
xor dl, byte [esp + edi - 0xf]
xor dl, 0xb4
add dl, 0x95
mov byte [esp + edi - 0xf], dl
inc edi
dec esi
cmp edi, 0x15
jne 0x441e00
mov esi, dword [esp]
mov edx, dword [0x44e0c0]
test edx, edx
je 0x441e55
xor edi, edi
mov ebp, dword [0x44e0c4]
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
cmp dword [ebp + edi*8], 0x3052ea03
je 0x441ed4
inc edi
cmp edx, edi
jne 0x441e40
jmp 0x441e59
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x441f87
test esi, esi
js 0x441f87
test ebx, ebx
je 0x441f7f
mov ecx, dword [edi + 0xc]
shr ecx, 1
mov edx, dword [ebp]
cmp edx, ecx
jb 0x441e87
mov edx, ecx
test edx, edx
mov dword [esp + 0xc], esi
je 0x441f76
add eax, 0x10
mov ecx, edx
and ecx, 3
je 0x441f13
xor edi, edi
nop
movzx esi, word [eax]
mov ebp, ebx
xor ebx, ebx
test si, si
setne bl
lea eax, [eax + ebx*2]
mov ebx, ebp
mov word [ebp], si
add ebx, 2
inc edi
cmp ecx, edi
jne 0x441ea0
mov esi, edx
sub esi, edi
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x34]
cmp edx, 4
jae 0x441f20
jmp 0x441f76
mov edx, dword [ebp + edi*8 + 4]
cmp edx, esi
mov edi, dword [esp + 8]
je 0x441e5d
lea esi, [esp + 0x10]
push esi
push ecx
push edi
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44e0c8]
mov esi, eax
call fcn.0043eca0
add esp, 0x24
mov ecx, eax
mov eax, esi
mov esi, ecx
jmp 0x441e5d
mov esi, edx
cmp edx, 4
jb 0x441f76
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebx], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebx + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebx + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebx + 6], cx
add ebx, 8
lea eax, [edi + eax*2]
add esi, 0xfffffffc
jne 0x441f20
mov edi, dword [esp + 8]
mov word [ebx], 0
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0xc]
shr eax, 1
mov dword [ebp], eax
push edi
call fcn.0043c860
add esp, 4
mov eax, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret