Function at 0x403664
Capabilities:
Encode data using xor

Disassembly:
sbb al, 0x3a
inc eax
add byte [edx + edi + 0x3aac0040], al
inc eax
add byte [eax], ch
cmp eax, dword [eax]
pop esp
cmp eax, dword [eax]
or dword [esi + ecx*2 + 0x43], edx
dec edi
bound ebp, qword [edx + 0x65]
arpl word [eax + edx*4 - 0x70], si
nop
xor al, 0x40
add byte [edi], al
pop es
or dword [esi + ecx*2 + 0x43], edx
dec edi
bound ebp, qword [edx + 0x65]
arpl word [esp + ebp*2 + 0x34], si
inc eax
add byte [eax - 0x1a], ah
inc ebp
add byte [eax], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
outsd dx, dword [esi]
jb 0x40351e
add byte [eax], al
nop
add byte [0x40], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
adc al, 0x35
inc eax
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 [eax], al
add byte [eax], al
add byte [esi], ah
xor eax, 0x440040
add byte [eax], al
and byte [eax + eax*2], dh
add byte [ecx + 0xd480046], bh
inc esi
add byte [ebp + ecx + 0x46], cl
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
add byte [edx + ecx + 0xaa80046], cl
inc esi
add ah, ah
or al, byte [esi]
in al, dx
in eax, 0x45
add byte [eax + eax], dh
add byte [eax], al
or byte [ebp + ecx*2 + 0x65], dl
outsb dx, byte [esi]
jne 0x40356f
je 0x40359d
nop
xor al, 0x35
inc eax
add byte [edi], al
pop es
or byte [ebp + ecx*2 + 0x65], dl
outsb dx, byte [esi]
jne 0x40357e
je 0x4035ac
add byte [0x348c0040], dh
inc eax
add byte [eax], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
outsd dx, dword [esi]
jb 0x4035c1
add byte [eax], al
nop
nop
movsb byte es:[edi], byte [esi]
xor eax, 0x40
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 [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov eax, 0x2c004035
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x2c004035], bh
add byte [eax], al
add byte [eax], ah
xor al, 0x40
add byte [eax], al
and byte [eax + eax*2], dh
add byte [ecx + 0xd480046], bh
inc esi
add byte [ebp + ecx + 0x46], cl
add byte [eax + 0xd], dl
inc esi
add byte [ebp + ecx + 0x46], al
add byte [edx + ecx + 0xaa80046], cl
inc esi
add ah, ah
or al, byte [esi]
or al, byte [esi]
in al, 0xa
inc esi
add byte [edx + edi], bl
sbb al, 0x3a
inc eax
add byte [edx + edi + 0x3aac0040], al
inc eax
add byte [eax], ch
cmp eax, dword [eax]
push 0xd00403b
push esp
push edi
imul ebp, dword [esi + 0x53], 0x75427379
je 0x403638
lodsb al, byte [esi]
cmp al, byte [eax]
sub byte [ebx], bh
inc eax
add byte [eax + 0x3b], ch
inc eax
add byte [0x6e695754], cl
push ebx
jns 0x403633
inc edx
jne 0x403637
je 0x403634
outsd dx, dword [esi]
outsb dx, byte [esi]
nop
nop
int3
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + 0x60004036], ah
add byte [eax], al
add byte [eax], ch
adc eax, dword [eax + eax + 0x38]
cmpsb byte [esi], byte es:[edi]
inc eax
add byte [eax], ah
add byte [eax], al
sub byte [ebx], dl
inc esp
add byte [eax], bh
cmp byte [ebp + 0xd480044], dh
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 [edi + eax*2 + 0x40], ah
add al, bh
clc
xor eax, 0xb12c0044
inc esp
add byte [esi - 0x4dfbffbc], dl
inc esp
add al, dl
mov al, 0x44
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
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
add byte [eax], cl
inc edi
inc eax
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ah, dh
xor eax, 0x300040
add byte [eax], al
or al, 0x54
push edi
imul ebp, dword [esi + 0x53], 0x4d6e696b
outsb dx, byte gs:[esi]
jne 0x403644
mov eax, 0x7004036
or al, 0x54
push edi
imul ebp, dword [esi + 0x53], 0x4d6e696b
outsb dx, byte gs:[esi]
jne 0x40372b
inc eax
add byte [esp + edx], ah
inc esp
add byte [edx], al
add byte [ebx], cl
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
outsd dx, dword [esi]
jb 0x403749
add byte [eax], al
nop
nop
in al, 0x36
inc eax
add byte [ebx], al
add ecx, dword [esi]
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x40375c
push ebx
je 0x40376b
insb byte es:[edi], dx
add dword gs:[eax], eax
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add al, ah
inc eax
add byte [ecx], cl
jae 0x40376a
jae 0x403754
outsd dx, dword [esi]
jb 0x403776
popal
insb byte es:[edi], dx
or dh, byte [ebx + 0x66]
jae 0x40375d
inc esp
dec ecx
outsw dx, word [esi]
jb 0x403783
or esi, dword [ebx + 0x66]
jae 0x403768
inc esp
dec ecx
inc ebx
push 0x8646c69
jae 0x40378b
jae 0x40376a
push 0xb646c69
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
or edx, dword [edi + 0x69]
outsb dx, byte [esi]
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x4037a4
nop
cmp al, 0x37
inc eax
add byte [ebx], al
add ecx, dword [edi]
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x4037b4
inc edx
outsd dx, dword [esi]
jb 0x4037af
jb 0x40374f
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax], bh
aaa
add byte [eax], al
cmp byte [edi], dh
inc eax
add byte [ebx], cl
jae 0x4037bf
bound esi, qword [ebx + 0x53]
jae 0x4037b2
imul edi, dword [edx + 0x65], 0x656c6261
or dword [ebx + 0x62], esi
jae 0x4037be
bound esi, qword [ebx + 0x53]
push ebx
imul ebp, dword [esi + 0x67], 0x7307656c
bound esi, qword [ebx + 0x4e]
outsd dx, dword [esi]
outsb dx, byte [esi]
or dword gs:[ebx + 0x62], esi
jae 0x4037c1
imul esp, dword [ecx + 0x6c], 0x570b676f
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
outsd dx, dword [esi]
jb 0x4037fb
nop
nop
xchg esp, eax
aaa
inc eax
add byte [ebx], al
add edx, dword [eax]
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x57
invalid
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x4037f5
je 0x403805
je 0x40380b
add dword [eax], eax
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax + 0x9004037], dl
nop
aaa
inc eax
add byte [ecx], cl
jae 0x40382d
jae 0x403806
outsd dx, dword [esi]
jb 0x403828
popal
insb byte es:[edi], dx
push es
jae 0x403837
ja sym.Project1.exe___xp_26Winskinform_TSkinFormIcons
jae 0x40380f
dec ebp
popal
js 0x4037cb
jae 0x40383e
jae 0x403816
imul ebp, dword [esi + 0xb], 0x536e6957
or edx, dword [edi + 0x69]
outsb dx, byte [esi]
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x403844
nop
fdiv qword [edi]
inc eax
add byte [ebx], al
add ecx, dword [0x696b5354]
outsb dx, byte [esi]
inc esi
outsd dx, dword [esi]
jb 0x403854
dec ecx
arpl word [edi + 0x6e], bp
add dword [eax], eax
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
fdiv dword [edi]
aaa
inc eax
add byte [esi], al
jae 0x40385d
imul ecx, dword [ebp + 0x61], 0x62730678
imul ecx, dword [ebp + 0x69], 0x6273076e
outsb dx, byte [esi]
pop es
jae 0x40386b
imul ecx, dword [eax + 0x65], 0x7309706c
bound ebp, qword [ecx + 0x73]
jns 0x403888
insb byte es:[edi], dx
jo 0x403818
jae 0x403873
imul esi, dword [ebx + 0x79], 0x6d657473
je 0x40387c
insd dword es:[edi], dx
insd dword es:[edi], dx
or dh, byte [ebx + 0x62]
imul esp, dword [ebx + 0x61], 0x6f697470
outsb dx, byte [esi]
or edx, dword [edi + 0x69]
outsb dx, byte [esi]
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x40389c
nop
xor al, 0x38
inc eax
add byte [esi], al
push es
push cs
push esp
push ebx
imul ebp, dword [ecx + 0x6e], 0x46
outsd dx, dword [esi]
jb 0x4038ac
insd dword es:[edi], dx
dec ecx
arpl word [edi + 0x6e], bp
jae 0x403846
add eax, ebx
fdiv dword [edi]
aaa
inc eax
add byte [eax + 0x38509090], dl
inc eax
add byte [ecx], dl
adc dword [edx], eax
aaa
add al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
outsb dx, byte [esi]
inc esi
outsd dx, dword [esi]
jb 0x4038dd
mov esp, 0x4038
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, ch
in al, dx
cmp byte [eax], al
inc eax
cmp dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
cmp dword cs:[eax], eax
js 0x403897
add byte [eax], al
sub byte [ebx], dl
inc esp
add byte [eax], bh
add byte [eax], ch
adc eax, dword [eax + eax + 0x38]
cmp byte [ebp + 0xd480044], dh
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 [esp], cl
inc eax
inc esp
or eax, 0xa8c0046
inc esi
add byte [eax + 0xc00460a], ch
inc eax
add al, bh
xor eax, 0xb12c0044
inc esp
add byte [esi - 0x4dfbffbc], dl
inc esp
add byte [eax], ch
inc eax
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
inc esp
add byte [eax - 0x4b], dl
inc esp
add byte [edx + esi*4], ah
inc esp
mov dl, 0x44
add byte [edx + esi*4], bl
inc esp
add byte [eax - 0x4b], bl
inc esp
add byte [edx + 0x40], ah
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [edi], al
add byte [eax], al
add ah, ch
in eax, 0x45
add byte [eax + eax], bl
add ah, ch
in eax, 0x45
add byte [eax], ah
add byte [eax], al
dec esp
in al, 0x45
add byte [eax + eax], ah
add ah, ch
in eax, 0x45
add byte [eax + 0x4c000000], bl
in al, 0x45
add al, dh
add byte [eax], al
add byte [eax + edi + 0x40], cl
add byte [eax + 1], al
add byte [eax], al
dec esp
in al, 0x45
add byte [ecx + eax], dh
add byte [esp + edx*2], cl
push edi
imul ebp, dword [esi + 0x53], 0x466e696b
outsd dx, dword [esi]
jb 0x4039a8
nop
inc eax
cmp dword [eax], eax
mov word [edx], cs
inc esi
add byte [eax - 0x7ffb9f6], ch
inc ecx
add al, bh
clc
xor eax, 0xb12c0044
inc esp
add byte [esi - 0x4dfbffbc], dl
inc esp
add byte [edi + esi], ch
inc ecx
add byte [edx + esi*4], dl
inc esp
add byte [ebx + esi*4], cl
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
add byte [ebp + ebp*4 + 0x540b0044], dh
push edi
imul ebp, dword [esi + 0x53], 0x536e696b
jo 0x403a69
hlt
add dword [eax], eax
add byte [ebx + 0x40c7fc45], cl
and byte [edx], al
add byte [eax], al
add byte [ebx + 0x108bfc45], cl
call dword [edx + 0x10]
pop ecx
pop ebp
ret