Function at 0x4172a8
Capabilities:
Encode data using xor

Disassembly:
mov es, word [ecx]
nop
invalid
pop es
push cs
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x53
je 0x41729f
je 0x4172b5
jae 0x417284
popal
jb 0x417211
jno 0x417288
add al, cl
inc ecx
add byte [edx], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x6c436275
popal
jae 0x4172cd
add byte [eax], al
test al, 0x72
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + esi*2], cl
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, bh
jb 0x4172c0
add byte [eax + eax + 0x64080000], bl
inc ecx
add byte [eax], bh
mov ch, 0x44
add byte [eax + 0xd], cl
or byte [ecx + eax*2], ah
cmp byte [ebp + 0xd480044], dh
inc esi
add byte [eax - 0x52], bh
inc esp
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
add byte [edx + ecx + 0xaa80046], cl
inc esi
add byte [eax - 0x75], bh
inc ecx
add al, bh
clc
add byte [eax + 0x7800460a], ch
mov eax, dword [ecx]
xor eax, 0xb12c0044
inc esp
add byte [esi - 0x4dfbffbc], dl
inc esp
mov dl, 0x44
add al, dl
mov al, 0x44
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
or al, 0xb3
inc esp
add byte [eax - 0x4b], dl
inc esp
add byte [edx + esi*4], ah
inc esp
add byte [edx + esi*4], bl
inc esp
mov dl, 0x44
add byte [eax - 0x4b], bl
inc esp
add byte [eax - 0x79], ch
inc ecx
add byte [edi + edi*8 - 0x7663ffbf], cl
inc ecx
add byte [eax + eax], ch
inc edx
add byte [ebx + edx*4], al
inc ecx
add byte [edi + edi*8 + 0x41], bh
add byte [esi + ecx*4 + 0x41], bh
add byte [ebx + edx*4 + 0x41], ch
add byte [ebx + ecx*4], bh
inc ecx
add byte [ebx + edx*4 + 0x54080041], cl
push ebx
imul ebp, dword [ecx + 0x6e], 0x42
outsd dx, dword [esi]
js 0x417296
nop
nop
or al, 0x73
inc ecx
add byte [edi], al
pop es
or byte [ebx + edx*2 + 0x6b], dl
imul ebp, dword [esi + 0x42], 0x72a8786f
inc ecx
add al, cl
inc ecx
add byte [edx], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x6c436275
popal
jae 0x41739f
add byte [eax], al
nop
nop
jl 0x4173a5
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, ah
jae 0x417384
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, dl
jae 0x417394
add byte [eax + eax + 0x64080000], bl
inc ecx
add byte [eax], bh
mov ch, 0x44
add byte [eax + 0xd], cl
inc esi
add byte [eax - 0x52], bh
inc esp
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
add byte [edx + ecx + 0xaa80046], cl
inc esi
add byte [eax - 0x75], bh
inc ecx
add al, bh
clc
xor eax, 0xb12c0044
inc esp
add byte [esi - 0x4dfbffbc], dl
adc al, 0x35
inc esp
add byte [edx + esi*4], al
inc esp
add al, dl
mov al, 0x44
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
or al, 0xb3
inc esp
add byte [eax - 0x4b], dl
inc esp
add byte [edx + esi*4], ah
inc esp
add byte [edx + esi*4], bl
inc esp
add byte [eax - 0x4b], bl
inc esp
mov ch, 0x44
add byte [eax - 0x79], ch
inc ecx
add ah, bl
clc
inc ecx
add byte [ecx + ecx*4 - 0x74fbffbf], bl
inc ecx
add byte [eax - 7], dl
inc ecx
add byte [eax + 0x7c004192], cl
mov es, word [ecx]
pushfd
stc
inc ecx
add byte [ebx + ecx*4], bh
inc ecx
add byte [ebx + edx*4 + 0x540d0041], cl
push ebx
imul ebp, dword [ecx + 0x6e], 0x47
jb 0x417448
jne 0x41744b
inc edx
outsd dx, dword [esi]
js 0x41736f
nop
in al, 0x73
inc ecx
add byte [edi], al
pop es
or eax, 0x696b5354
outsb dx, byte [esi]
inc edi
jb 0x41745d
jne 0x417460
inc edx
outsd dx, dword [esi]
js 0x417470
jae 0x417437
add al, cl
inc ecx
add byte [edx], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x6c436275
popal
jae 0x41747c
add byte [eax], al
nop
pop eax
je 0x417450
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esp + esi*2 + 0x41], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
lodsb al, byte [esi]
je 0x417470
add byte [eax + 0x8000000], ah
inc ecx
add byte [eax], bh
mov ch, 0x44
add byte [eax + 0xd], cl
inc esi
add byte [eax - 0x52], bh
inc esp
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
inc esp
or eax, 0xa8c0046
inc esi
add byte [eax + 0x7800460a], ch
mov eax, dword [ecx]
add byte [edx + ecx + 0xaa80046], cl
test al, 0xa
inc esi
add byte [eax - 0x75], bh
inc ecx
add al, bh
clc
xor eax, 0xb12c0044
inc esp
mov cl, 0x44
add byte [esi - 0x4dfbffbc], dl
adc al, 0x35
inc esp
add byte [edx + esi*4], al
inc esp
add al, dl
mov al, 0x44
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
or al, 0xb3
inc esp
add byte [eax - 0x4b], dl
inc esp
add byte [edx + esi*4], ah
inc esp
add byte [edx + esi*4], bl
sbb al, 0xb2
inc esp
add byte [eax - 0x4b], bl
inc esp
add byte [eax - 0x79], ch
inc ecx
add byte [eax + ecx*4], dl
inc ecx
add byte [ecx + ecx*4 - 0x74fbffbf], bl
inc ecx
add byte [ebp + esi - 0x6d77ffbe], ch
inc ecx
add byte [esi + ecx*4 + 0x41], bh
add byte [eax], dl
aaa
inc edx
add byte [ebx + ecx*4], bh
inc ecx
add byte [ebx + edx*4 + 0x540b0041], cl
push ebx
imul ebp, dword [ecx + 0x6e], 0x55
jo 0x4174f9
outsd dx, dword [esi]
ja 0x417526
mov esp, 0x7004174
or edx, dword [ebx + edx*2 + 0x6b]
imul ebp, dword [esi + 0x55], 0x776f4470
outsb dx, byte [esi]
pop eax
je 0x41750d
add al, cl
inc ecx
add byte [edx], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x6c436275
popal
jae 0x417552
add byte [eax], al
nop
nop
nop
call 0x341b65d
add edx, dword [eax]
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x54
popal
bound edx, qword [eax + 0x6f]
jae 0x41755f
je 0x417561
outsd dx, dword [esi]
outsb dx, byte [esi]
add dword [eax], eax
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add ah, ah
je 0x417547
add byte [0x6f547453], al
jo 0x417516
or byte [ebx + 0x74], dl
bound ebp, qword [edi + 0x74]
je 0x417584
push ebx
je 0x417573
outsd dx, dword [esi]
je 0x417588
outsd dx, dword [esi]
insd dword es:[edi], dx
push es
push ebx
je 0x417586
je 0x417525
push ebx
je 0x417593
imul esp, dword [edi + 0x68], 0x69570b74
or edx, dword [edi + 0x69]
push edi
imul ebp, dword [esi + 0x53], 0x6c436275
outsb dx, byte [esi]
push ebx
jne 0x41758e
inc ebx
insb byte es:[edi], dx
popal
jae 0x4175a4
nop
nop
nop
cmp byte [ebp + 0x41], dh
add byte [ecx], dl
adc dword [ebx], eax
xor esi, dword cs:[edx]
adc byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
jne 0x4175b6
inc ebx
insb byte es:[edi], dx
popal
jae 0x4175cc
nop
nop
nop
test al, 0x75
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, bh
jne 0x4175ac
add byte [esi + esi*2], bl
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], cl
jbe 0x4175c0
add byte [eax + eax + 0x64080000], dh
or byte [ecx + eax*2], ah
inc ecx
add byte [eax], bh
mov ch, 0x44
add byte [eax + 0xd], cl
cmp byte [ebp + 0xd480044], dh
inc esi
add byte [eax - 0x52], bh
inc esp
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
add byte [edx + ecx + 0xaa80046], cl
inc esi
invalid
movsb byte es:[edi], byte [esi]
pop es
inc edx
invalid
movsb byte es:[edi], byte [esi]
pop es
inc edx
invalid