Function at 0x422840
Capabilities:
Encode data using xor

Disassembly:
movsx ecx, word [0x45a530]
mov eax, dword [0x478ab8]
not eax
shl ecx, 3
imul eax, eax, 0x7cf1dba1
or ecx, 0x4d21c207
cmp eax, ecx
jle 0x42287f
mov eax, dword [0x4782e8]
or eax, dword [0x472960]
cmp eax, 0x867f6a8a
je 0x422889
add dword [0x4709ac], 0x31eb9718
jmp 0x422889
or dword [0x47b728], 0x7aa41670
mov eax, dword [0x46b380]
sar eax, 3
xor eax, 0xb03262ee
or dword [0x469310], eax
movsx ecx, word [0x462388]
mov eax, dword [0x475268]
not ecx
imul eax, ecx
cmp eax, 0x430a5a59
jge 0x4228d6
dec word [0x461078]
mov ax, word [0x461078]
mov ecx, dword [0x46f2a8]
sub ecx, 0x19855eb4
cwde
xor ecx, eax
mov dword [0x470158], ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
push edi
mov dword [0x46b900], 0xec914464
lea eax, [ebp + 4]
push eax
call fcn.0042ba3d
mov esi, eax
add esp, 4
mov eax, dword [0x4674a4]
xor eax, 0xf31c3d28
cmp eax, 0xdcfcfed7
jg 0x422911
and dword [0x46d238], 0x119e960d
mov ax, word [0x45fc90]
movzx ecx, word [0x45b3e0]
mov edi, dword [esp + 0x14]
cwde
sub ecx, eax
mov dword [esp + 0x18], esi
sub ecx, 0x6258dd7c
mov word [0x45b3e0], cx
jmp 0x422940
and dword [0x47fe40], 0x954fce2e
mov al, byte [edi + section..data]
mov byte [esi], al
inc dword [0x479fa4]
mov eax, dword [0x479fa4]
xor eax, 0x9d0cb721
cmp eax, 0x62d388df
jne 0x422986
mov ecx, dword [0x47a3e0]
movzx eax, word [0x4600cc]
not ecx
or ecx, 0x12410c
add eax, ecx
mov word [0x4600cc], ax
mov eax, dword [0x457ef4]
mov ecx, 0xf159d66c
movzx eax, byte [eax + edi]
xor byte [esi], al
and dword [0x479fd4], 0x4bda76fb
mov eax, dword [0x470dbc]
sub ecx, eax
xor dword [0x478650], ecx
imul eax, dword [0x46c400], 0xe1022b84
mov dword [0x46c400], eax
movzx eax, byte [edi + 0x453001]
mov byte [esi + 1], al
mov eax, dword [0x46fffc]
xor eax, dword [0x467b14]
mov dword [0x467b14], eax
mov eax, dword [0x457ef4]
movzx eax, byte [eax + edi + 1]
add edi, 2
xor byte [esi + 1], al
mov eax, dword [0x47d8fc]
and eax, 0xaf043709
xor dword [0x466ed4], eax
mov eax, dword [0x4734a8]
xor eax, dword [0x4732d0]
xor eax, 0xc218cf8
mov dword [0x4732d0], eax
dec dword [0x4734a8]
movzx eax, word [0x4609e0]
mov ecx, dword [0x46bdb4]
cwde
imul ecx, eax
mov dword [0x46bdb4], ecx
mov ecx, 0x1aac9efa
movzx ebx, word [esi]
dec word [0x45c59c]
movzx eax, word [0x45c59c]
movsx edx, word [0x460bd8]
not edx
cwde
and edx, eax
mov eax, dword [0x479528]
sub ecx, eax
and edx, 0xb2444ae4
xor ecx, 0xea6db6e2
cmp edx, ecx
jg 0x422a70
imul eax, dword [0x46c600], 0xc8d083dc
mov dword [0x46c600], eax
lea eax, [ebx + 3]
push eax
lea eax, [edi + section..data]
push eax
push esi
call fcn.0042c4c0
and dword [0x47a2bc], 0x6b90173f
lea edx, [esi + 3]
inc word [0x45b794]
add esp, 0xc
mov ax, word [0x45b794]
add edx, ebx
cwde
sub dword [0x471e44], eax
cmp dword [0x477de8], 0xc3c9b5ed
jge 0x422aba
add dword [0x47caec], 4
mov ecx, dword [0x457ef4]
inc dword [0x47c7ac]
add ecx, edi
mov eax, dword [0x47c7ac]
or eax, 0x65d06a20
mov dword [0x47fcdc], eax
cmp esi, edx
je 0x422b07
sub ecx, esi
lea ecx, [ecx]
movsx eax, word [0x45ede0]
imul eax, eax, 0x7ddea59d
add dword [0x47af4c], eax
mov al, byte [ecx + esi]
xor byte [esi], al
inc esi
or dword [0x469780], 0xf1b9a998
cmp esi, edx
jne 0x422ae0
mov eax, dword [0x47eb60]
or eax, dword [0x470a08]
mov dword [0x470a08], eax
inc dword [0x47eb60]
cmp ebp, ebx
je 0x422b9b
imul eax, dword [0x46a15c], 0x34998d69
lea esi, [edx - 3]
sub ebp, ebx
mov dword [0x46a15c], eax
mov byte [edx], 0
inc dword [0x4760b4]
mov ecx, dword [0x4760b4]
movzx eax, word [0x45aa58]
and ecx, 0x1baf947d
add ecx, eax
mov word [0x45aa58], cx
add dword [0x4778a0], 0xf525844f
movzx eax, word [0x46179e]
mov edi, dword [edx - 3]
xor eax, 0x920cf56e
mov word [0x46179e], ax
mov eax, 0x7d67
mov word [0x461830], ax
movsx eax, word [0x459d40]
add eax, 0xdc2bc736
or dword [0x47babc], eax
jmp 0x422940
mov ecx, dword [0x46e820]
pop edi
and ecx, 0xf86b3810
pop esi
shl ecx, 4
pop ebp
pop ebx
cmp ecx, 0xa030c1d0
jle 0x422bc1
mov eax, 0xfffffe7c
mov word [0x45b358], ax
mov eax, dword [esp + 8]
ret