Function at 0x442ef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [esp + 0x38]
test eax, eax
je 0x442f3a
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x442f10
sar ecx, 1
mov edx, ecx
and edx, 0xfffd
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
jmp 0x442f3c
xor ecx, ecx
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x442f4c
add ecx, 2
mov edx, ecx
mov esi, dword [esp + 0x34]
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp], 0x94959697
mov word [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea ecx, [eax - 0x6de8fcdc]
xor ecx, edx
mov edx, ecx
and edx, 0x4b
mov edi, ecx
or edi, 0xda730fb4
not ecx
or ecx, 0x4004b
and ecx, edi
not ecx
lea edx, [ecx + edx*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax], dl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 6
jb 0x442f70
mov ebx, dword [esp]
mov eax, dword [0x44f2b4]
test eax, eax
je 0x443016
xor ecx, ecx
mov edx, dword [0x44f2b8]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x877f203a
je 0x442fea
mov edi, ecx
and edi, 1
xor ecx, 1
lea ecx, [ecx + edi*2]
cmp ecx, eax
jb 0x442fd0
jmp 0x443016
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x443016
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push edx
push esi
push 0x18
push eax
push dword [0x44f2bc]
call fcn.0043f4a0
add esp, 0x24
mov ebx, eax
mov dword [esp], 0x713e3f19
mov eax, 0x2d28808a
mov ecx, 0xd2d77f75
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
xor edx, 0xe
mov edi, eax
or edi, 0xe1
and edi, edx
mov ebp, ecx
xor ebp, 0xe1
mov edx, ecx
or edx, 0x1e
and edx, ebp
or edx, edi
xor dl, byte [esp + ecx + 0x2d28808b]
xor dl, 0xe1
add dl, 0xb7
mov byte [esp + ecx + 0x2d28808b], dl
dec eax
inc ecx
cmp eax, 0x2d288086
jne 0x443030
cmp ebx, dword [esp]
jne 0x443255
push dword [esp + 0xc]
call fcn.0043c9d0
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0x797a7b72
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor edx, edx
movzx edi, byte [esp + edx + 0x10]
lea ecx, [edi + edi]
not ecx
add ecx, edi
not edi
and ecx, edi
mov ebp, 0x622f8294
sub ebp, edx
or ebp, ecx
lea ebx, [edx + 0x6b]
or ebx, edi
sub ebx, edx
mov ecx, 0x1dd07d6a
sub ecx, ebx
add ebx, 0xf8295
and ecx, 0x148006ee
and ebx, 0x90111
or ebx, ecx
xor ebx, 0x89597911
and ebx, ebp
lea ecx, [ebx + ebx]
and ecx, 0x119219d0
xor ebx, 0xeaed8ce8
mov edi, ecx
and edi, ebx
xor ebx, ecx
lea ecx, [ebx + edi*2]
inc cl
mov byte [esp + edx + 0x10], cl
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
cmp edx, 7
jb 0x4430a0
mov edx, dword [esp + 0x10]
mov dword [esp], 0x94959697
mov word [esp + 4], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx]
lea ebp, [ebx - 0x6de8fcdc]
xor ebp, ecx
mov ecx, ebp
and ecx, 0x4b
mov edi, ebp
or edi, 0xda730fb4
not ebp
or ebp, 0x4004b
and ebp, edi
not ebp
lea ecx, [ecx*2]
add ecx, ebp
and ebp, 1
or ecx, 1
add ecx, ebp
mov byte [esp + ebx], cl
mov ecx, ebx
xor ecx, 0xfffffffe
or ebx, 1
and ecx, ebx
add ebx, ecx
cmp ebx, 6
jb 0x443130
mov ebx, dword [esp]
mov ebp, dword [0x44f2b4]
test ebp, ebp
je 0x4431d0
xor edi, edi
mov ecx, dword [0x44f2b8]
nop
cmp dword [ecx + edi*8], 0x877f203a
je 0x4431a0
inc edi
cmp ebp, edi
jne 0x443190
jmp 0x4431d0
mov ebp, dword [ecx + edi*8 + 4]
cmp ebp, ebx
je 0x4431d0
lea ecx, [esp + 0xc]
lea edi, [esp + 0x18]
push ecx
push dword [esp + 0xc]
push eax
push edx
push edi
push esi
push 0x18
push ebp
push dword [0x44f2bc]
mov edi, eax
call fcn.0043f4a0
add esp, 0x24
mov ebx, eax
mov eax, edi
test ebx, ebx
js 0x44324c
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4431e1
mov ecx, dword [eax + 4]
mov dword [edx], ecx
cmp dword [esp + 0x44], 0
je 0x44324c
mov esi, dword [esp + 0x40]
test esi, esi
je 0x443243
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x4431ff
mov edx, ecx
lea ebp, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, esi
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
mov ecx, edx
and ecx, 0xfffffffc
add esi, ecx
lea ebp, [eax + ecx]
add ebp, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov dword [esp + 8], ebp
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test dl, 1
je 0x443243
and edx, 2
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + edx]
mov byte [esi + edx], cl
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
push eax
call fcn.0043ca40
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret