Function at 0x4425a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4425ea
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 0x4425c0
sar ecx, 1
mov edx, ecx
and edx, 2
mov esi, ecx
or ecx, 2
imul ecx, edx
xor edx, 2
and esi, 0xfffd
imul esi, edx
add ecx, esi
jmp 0x4425ec
xor ecx, ecx
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x4425fc
add ecx, 2
mov edx, ecx
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp], 0xd8dbdac5
mov word [esp + 4], 0
mov eax, 0xf
mov ecx, 0x10
nop
nop
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 0x442620
mov ebp, dword [esp]
mov eax, dword [0x44e0c0]
test eax, eax
je 0x44269f
xor ecx, ecx
mov edx, dword [0x44e0c4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x877f203a
je 0x442670
inc ecx
cmp eax, ecx
jne 0x442660
jmp 0x44269f
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebp
je 0x44269f
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x4c]
push 0x18
push eax
push dword [0x44e0c8]
call fcn.0043eca0
add esp, 0x24
mov ebp, eax
mov dword [esp], 0x73323113
mov word [esp + 4], 0
mov eax, esp
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0xfffffff8
add esi, edx
movzx edi, byte [eax]
xor esi, 0x42cb7bf4
not edi
mov ebx, esi
or ebx, edi
and edi, esi
movzx esi, bl
xor esi, edi
mov ebx, esi
not ebx
and esi, 0xc5
and ebx, 0x3a
sub ebx, esi
inc bl
mov byte [eax], bl
inc edx
inc eax
add ecx, 2
cmp ecx, 0xc
jne 0x4426c0
cmp ebp, dword [esp]
jne 0x442892
push dword [esp + 0xc]
call fcn.0043c7d0
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0x33323132
mov word [esp + 0x14], 0
mov edx, 0x75576434
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx - 0x75576424]
xor ebx, edx
mov esi, ebx
not esi
and esi, 5
and ebx, 0xfa
sub ebx, esi
inc bl
mov byte [esp + edx - 0x75576424], bl
inc edx
cmp edx, 0x7557643a
jne 0x442730
mov edx, dword [esp + 0x10]
mov dword [esp], 0xd8dbdac5
mov word [esp + 4], 0
mov esi, 0xf
mov ebp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ebp
and edi, 0x14
mov ebx, esi
and ebx, 0xb
or ebx, edi
xor bl, byte [esp + esi - 0xf]
xor bl, 0xb4
add bl, 0x95
mov byte [esp + esi - 0xf], bl
inc esi
dec ebp
cmp esi, 0x15
jne 0x442780
mov ecx, dword [esp]
mov ebp, dword [0x44e0c0]
test ebp, ebp
je 0x4427d0
xor edi, edi
mov esi, dword [0x44e0c4]
mov ebx, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edi*8], 0x877f203a
je 0x4427d6
inc edi
cmp ebp, edi
jne 0x4427c0
jmp 0x442809
mov ebx, dword [esp + 0x48]
jmp 0x442809
mov ebp, dword [esi + edi*8 + 4]
cmp ebp, ecx
je 0x442809
lea esi, [esp + 0xc]
lea edi, [esp + 0x18]
push esi
push dword [esp + 0xc]
push eax
push edx
push edi
push dword [esp + 0x4c]
push 0x18
push ebp
push dword [0x44e0c8]
mov esi, eax
call fcn.0043eca0
add esp, 0x24
mov ecx, eax
mov eax, esi
test ecx, ecx
mov edx, dword [esp + 0x44]
mov ebp, ecx
js 0x442889
mov esi, dword [esp + 0x40]
test esi, esi
je 0x442820
mov ecx, dword [eax + 4]
mov dword [esi], ecx
test ebx, ebx
je 0x442889
mov dword [esp + 8], ebp
test edx, edx
je 0x442880
mov edx, dword [ebx]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x442837
mov edx, ecx
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov ebp, dword [esp + 0x44]
mov edi, ebp
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add ebp, ecx
lea esi, [eax + ecx]
add esi, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov dword [esp + 0x20], esi
mov edi, ebp
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test dl, 1
je 0x442880
and edx, 2
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + edx]
mov byte [ebp + edx], cl
mov ecx, dword [eax + 8]
mov dword [ebx], ecx
mov ebp, dword [esp + 8]
push eax
call fcn.0043c860
add esp, 4
mov eax, ebp
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret