Function at 0x442ea0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
add ecx, ebx
adc edx, 0
xor eax, eax
mov esi, 0xfffffffe
cmp esi, ecx
mov ecx, 0
sbb ecx, edx
mov esi, dword [esp + 0x28]
jb 0x442f52
mov ecx, ebp
shr ecx, 2
mov edx, ebx
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebp
and edx, 0xfffffffc
add esi, edx
add edx, ebx
mov ecx, ebp
not ecx
or ecx, 3
lea ebx, [ecx + ebp]
inc ebx
mov ecx, ebx
shr ecx, 1
mov ebp, edx
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov edi, ebx
xor edi, 0xfffffffe
mov ebp, ebx
or ebp, 1
and ebp, edi
je 0x4430fd
and ebx, 0xfffffffe
add edx, ebx
add esi, ebx
mov edi, ebp
and edi, 7
je 0x443080
xor ebx, ebx
nop
nop
nop
nop
movzx ecx, byte [edx + ebx]
mov byte [esi + ebx], cl
inc ebx
cmp edi, ebx
jne 0x442f30
add edx, ebx
add esi, ebx
mov edi, ebp
sub edi, ebx
cmp ebp, 8
jae 0x443087
jmp 0x4430fd
mov dword [esp], 0xb08f8e8d
mov byte [esp + 4], 0
mov eax, 0x1d
mov ecx, 0xe2
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x1d]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x6f
mov byte [esp + eax - 0x1d], dl
inc eax
dec ecx
cmp eax, 0x22
jne 0x442f70
mov eax, dword [esp]
mov ecx, dword [0x451cfc]
test ecx, ecx
je 0x442fda
xor edx, edx
mov edi, dword [0x451d00]
cmp dword [edi + edx*8], 0x7789b0cb
je 0x442fb0
inc edx
cmp ecx, edx
jne 0x442fa0
jmp 0x442fda
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
je 0x442fda
lea eax, [esp + 8]
push 2
push 0
push 0
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 7
push dword [0x451d04]
push ecx
call fcn.00441c30
add esp, 0x28
test eax, eax
mov edi, dword [esp + 0x24]
js 0x4430fd
push 0x1e03da9a
push dword [0x459d10]
call fcn.004443c0
add esp, 8
push 0
push 0
push ebp
push esi
push edi
push ebx
push dword [esp + 0x20]
call eax
mov ecx, dword [esp + 8]
mov dword [esp], 0xb08f8e8d
mov byte [esp + 4], 0
mov edx, 0x1d
mov esi, 0xe2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx - 0x1d]
mov ebx, esi
xor ebx, edx
and ebx, edi
xor ebx, edx
add bl, 0x6f
mov byte [esp + edx - 0x1d], bl
inc edx
dec esi
cmp edx, 0x22
jne 0x443030
mov edx, dword [0x451cfc]
test edx, edx
je 0x4430fd
mov esi, dword [esp]
xor edi, edi
mov ebx, dword [0x451d00]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x7e776f1
je 0x4430df
inc edi
cmp edx, edi
jne 0x443070
jmp 0x4430fd
mov edi, ebp
cmp ebp, 8
jb 0x4430fd
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx ebx, byte [edx + ecx]
mov byte [esi + ecx], bl
movzx ebx, byte [edx + ecx + 1]
mov byte [esi + ecx + 1], bl
movzx ebx, byte [edx + ecx + 2]
mov byte [esi + ecx + 2], bl
movzx ebx, byte [edx + ecx + 3]
mov byte [esi + ecx + 3], bl
movzx ebx, byte [edx + ecx + 4]
mov byte [esi + ecx + 4], bl
movzx ebx, byte [edx + ecx + 5]
mov byte [esi + ecx + 5], bl
movzx ebx, byte [edx + ecx + 6]
mov byte [esi + ecx + 6], bl
movzx ebx, byte [edx + ecx + 7]
mov byte [esi + ecx + 7], bl
add ecx, 8
cmp edi, ecx
jne 0x443090
jmp 0x4430fd
mov edx, dword [ebx + edi*8 + 4]
cmp edx, esi
je 0x4430fd
push ecx
push 1
push dword [0x451d04]
push edx
mov esi, eax
call fcn.00441c30
mov eax, esi
add esp, 0x10
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret