Function at 0x442910
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x38]
mov dword [esp + 8], 0x40474645
mov word [esp + 0xc], 0
mov eax, 0xf3d9c9f1
mov ecx, 0xe
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xc263617]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
xor esi, 0xc340f1b6
and edx, 0x30990849
add edx, edx
sub edx, esi
mov ebx, edx
or ebx, 1
add ebx, edx
not edx
or edx, 1
add ebx, edx
inc bl
mov byte [esp + eax + 0xc263617], bl
inc eax
dec ecx
cmp eax, 0xf3d9c9f7
jne 0x442940
mov esi, dword [esp + 8]
mov eax, dword [0x44da9c]
test eax, eax
je 0x4429de
xor ecx, ecx
mov edx, dword [0x44daa0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3602324e
je 0x4429b0
inc ecx
cmp eax, ecx
jne 0x4429a0
jmp 0x4429de
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x4429de
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push 1
push dword [esp + 0x44]
push dword [esp + 0x44]
push 6
push eax
push dword [0x44daa4]
call fcn.0043e1f0
add esp, 0x24
mov esi, eax
cmp esi, 0xc0000023
jne 0x442c6b
push dword [esp + 0x18]
call fcn.0043a170
add esp, 4
mov dword [esp], eax
mov ebp, dword [esp + 0x18]
mov dword [esp + 8], 0x40474645
mov word [esp + 0xc], 0
mov edx, 0xf3d9c9f1
mov ebx, 0xe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx + 0xc263617]
mov esi, ebx
xor esi, edx
and esi, ecx
xor esi, edx
mov ecx, esi
xor ecx, 0xc340f1b6
and esi, 0x30990849
add esi, esi
sub esi, ecx
mov ecx, esi
or ecx, 1
add ecx, esi
not esi
or esi, 1
add ecx, esi
inc cl
mov byte [esp + edx + 0xc263617], cl
inc edx
dec ebx
cmp edx, 0xf3d9c9f7
jne 0x442a20
mov esi, dword [esp + 8]
mov edx, dword [0x44da9c]
test edx, edx
je 0x442aa2
mov dword [esp + 4], ebp
mov ebp, esi
xor esi, esi
mov ecx, dword [0x44daa0]
mov ebx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx + esi*8], 0x3602324e
je 0x442aa7
inc esi
cmp edx, esi
jne 0x442a90
mov esi, ebp
jmp 0x442ade
mov ebx, dword [esp]
jmp 0x442ade
mov edx, dword [ecx + esi*8 + 4]
mov esi, ebp
cmp edx, ebp
je 0x442ade
lea ecx, [esp + 0x18]
push ecx
push dword [esp + 8]
push ebx
push 1
push dword [esp + 0x44]
push dword [esp + 0x44]
push 6
push edx
push dword [0x44daa4]
mov esi, eax
call fcn.0043e1f0
add esp, 0x24
mov ecx, eax
mov eax, esi
mov esi, ecx
test esi, esi
mov ebp, dword [esp + 0x48]
js 0x442c62
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x442beb
test edi, edi
je 0x442be4
mov ebx, dword [ebx + 0x10]
shr ebx, 1
mov ecx, dword [edx]
cmp ecx, ebx
jb 0x442b0b
mov ecx, ebx
test ecx, ecx
je 0x442b65
add eax, 0x14
mov dword [esp + 0x10], ecx
and ecx, 3
mov ebx, dword [esp]
je 0x442b6a
mov ebx, dword [esp + 0x10]
mov dword [esp + 4], esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, word [eax]
xor edx, edx
test bp, bp
setne dl
lea eax, [eax + edx*2]
mov word [edi], bp
add edi, 2
inc esi
cmp ecx, esi
jne 0x442b30
mov ecx, ebx
sub ecx, esi
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp]
mov esi, dword [esp + 4]
cmp dword [esp + 0x10], 4
jae 0x442b75
jmp 0x442bdf
mov ebx, dword [esp]
jmp 0x442bdf
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jb 0x442bdf
mov ebp, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
lea esi, [eax + ebx*2]
mov word [edi], dx
movzx eax, word [eax + ebx*2]
xor edx, edx
test ax, ax
setne dl
lea ebx, [esi + edx*2]
mov word [edi + 2], ax
movzx eax, word [esi + edx*2]
xor edx, edx
test ax, ax
setne dl
lea esi, [ebx + edx*2]
mov word [edi + 4], ax
movzx edx, word [ebx + edx*2]
xor eax, eax
test dx, dx
setne al
mov word [edi + 6], dx
add edi, 8
lea eax, [esi + eax*2]
add ecx, 0xfffffffc
jne 0x442b80
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp]
mov esi, ebp
mov ebp, dword [esp + 0x48]
mov word [edi], 0
mov eax, dword [ebx + 0x10]
shr eax, 1
mov dword [edx], eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x442bf8
mov eax, dword [ebx + 4]
mov dword [ecx], eax
test ebp, ebp
je 0x442c62
mov dword [esp + 4], esi
cmp dword [esp + 0x44], 0
je 0x442c58
mov eax, dword [ebp]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
jb 0x442c13
mov eax, ecx
mov esi, dword [ebx + 8]
add esi, ebx
mov ecx, eax
shr ecx, 2
mov edx, eax
and edx, 0xfffffffc
mov edi, dword [esp + 0x44]
add dword [esp + 0x14], edx
add edx, esi
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, eax
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, dword [esp + 0x14]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 0x14]
test al, 1
je 0x442c58
and eax, 2
movzx ecx, byte [edx + eax]
mov byte [esi + eax], cl
mov eax, dword [ebx + 0xc]
mov dword [ebp], eax
mov esi, dword [esp + 4]
push ebx
call fcn.0043a200
add esp, 4
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret