Function at 0x441da0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
je 0x441dd3
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 0x441dc0
add ecx, 0xfffffffe
and ecx, 0xfffe
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x441de3
add ecx, 2
mov edx, ecx
mov edi, dword [esp + 0x40]
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp], 0x181b1a1d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0xbb
mov ecx, 0x44
nop
nop
nop
movzx esi, byte [esp + eax - 0xbb]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x59
mov byte [esp + eax - 0xbb], dl
inc eax
dec ecx
cmp eax, 0xc2
jne 0x441e10
mov esi, dword [esp]
mov eax, dword [0x44cf90]
test eax, eax
mov dword [esp + 8], edi
je 0x441e8f
xor ecx, ecx
mov edx, dword [0x44cf94]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xc0a4c970
je 0x441e60
inc ecx
cmp eax, ecx
jne 0x441e50
jmp 0x441e8f
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x441e8f
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x48]
push 6
push eax
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x24
mov esi, eax
mov dword [esp], 0x31feff99
mov byte [esp + 4], 0
mov edi, 0x3e502b55
mov ebp, 0xc1afd4aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x3e502b55]
mov edx, edi
and edx, ebx
add edx, edx
sub edx, ebx
add edx, ebp
and edx, edi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x5d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, edi
add al, 0x57
mov byte [esp + edi - 0x3e502b55], al
inc edi
dec ebp
cmp edi, 0x3e502b5a
jne 0x441eb0
cmp esi, dword [esp]
jne 0x4420aa
push dword [esp + 0xc]
call fcn.0043a050
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], 0x9f9e999e
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov edx, 0x5f7cb6da
nop
nop
movzx esi, byte [esp + edx - 0x5f7cb6ca]
lea edi, [edx - 0x5f7cb600]
and edi, esi
or esi, edx
xor esi, edi
mov edi, esi
and edi, 0x21024bd
xor esi, 0x22906dbd
lea edi, [esi + edi*2]
add esi, esi
and esi, 2
mov ebx, edi
and ebx, esi
or esi, 1
xor esi, edi
lea ebx, [esi + ebx*2]
mov byte [esp + edx - 0x5f7cb6ca], bl
inc edx
cmp edx, 0x5f7cb6e1
jne 0x441f30
mov edx, dword [esp + 0x10]
mov dword [esp], 0x181b1a1d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov edi, 0xbb
mov esi, 0x44
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0xbb]
mov ebx, esi
xor ebx, edi
and ebx, ebp
xor ebx, edi
add bl, 0x59
mov byte [esp + edi - 0xbb], bl
inc edi
dec esi
cmp edi, 0xc2
jne 0x441fa0
mov esi, dword [esp]
mov edi, dword [0x44cf90]
test edi, edi
je 0x442021
xor ebx, ebx
mov ebp, dword [0x44cf94]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0xc0a4c970
je 0x441ff1
inc ebx
cmp edi, ebx
jne 0x441fe0
jmp 0x442021
mov edi, dword [ebp + ebx*8 + 4]
cmp edi, esi
je 0x442021
lea esi, [esp + 0xc]
lea ebx, [esp + 0x18]
push esi
push ecx
push eax
push edx
push ebx
push dword [esp + 0x48]
push 6
push edi
push dword [0x44cf98]
mov edi, eax
call fcn.0043d020
add esp, 0x24
mov esi, eax
mov eax, edi
test esi, esi
mov edx, dword [esp + 0x40]
js 0x4420a1
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x442036
mov ecx, dword [eax + 4]
mov dword [edi], ecx
cmp dword [esp + 0x44], 0
je 0x4420a1
test edx, edx
je 0x442098
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x442050
mov edx, ecx
lea ebx, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, dword [esp + 0x40]
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov ecx, edx
and ecx, 0xfffffffc
add dword [esp + 8], ecx
lea ebx, [eax + ecx]
add ebx, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov ebp, ebx
mov edi, dword [esp + 8]
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov edi, dword [esp + 8]
test dl, 1
je 0x442098
and edx, 2
movzx ecx, byte [ebx + edx]
mov byte [edi + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
push eax
call fcn.0043a0e0
add esp, 4
mov eax, esi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret