Function at 0x403eea
Capabilities:
Encode data using xor

Disassembly:
push ebp
sbb eax, 0x300c0425
or al, byte [esi]
or byte [ebx], ch
push es
add dword [0x3030705], eax
xor byte [ecx + 6], dh
or byte [ebx], ch
push es
add dword [0x1010705], eax
add al, 0x65
xor byte [ebx + 0x30], ah
and al, 6
or byte [ebx], ch
push es
add dword [0x1300705], eax
xchg byte [eax], bl
push 0x3a707474
das
das
outsd dx, dword [esi]
arpl word [ebx + 0x70], si
jbe 0x403f2a
jb 0x403f30
jae 0x403f32
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
xor byte [ebx], bh
push es
or byte [ebx], ch
push es
add dword [0x2300705], eax
xchg byte [edi], ch
push 0x3a707474
das
das
arpl word [ebx + 0x63], si
xor ebp, dword [0x30313032]
xor byte [ecx], dh
xor byte [0x2e616961], ch
jbe 0x403f59
jb 0x403f5f
jae 0x403f61
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
insd dword es:[edi], dx
das
inc ebx
push ebx
inc ebx
xor ebp, dword [0x30313032]
arpl word cs:[ebp + 0x72], sp
xor byte [edi], bl
push es
add edx, dword [ebp + 0x1d]
and eax, dword [eax + ebx]
xor byte [esi], dl
adc byte [edi + ecx*8], 0x99
test eax, 0xf4267bea
dec ebx
leave
mov cs, word [edi + 0x2605f0d7]
out dx, eax
jecxz 0x403efd
shl byte [edi + 0x611309d], cl
cmpsd dword [esi], dword es:[edi]
popfd
xor byte [ecx], dl
push es
or dword [eax - 0x7a], esp
dec eax
add dword [esi + 0x10142f8], eax
xchg byte [eax + 1], cl
xchg al, bh
inc edx
add dword [ecx], eax
add al, 4
add eax, dword [edx]
add al, 0x10
xor byte [esi], dl
push es
or ch, byte [ebx]
push es
add dword [ecx + eax], eax
xor byte [edi], 2
add dword [ebx], ebx
add al, 8
xor byte [esi], al
add dword [ecx], eax
add byte [ecx], al
add edi, edi
xor byte [0x862a0906], cl
or eax, 0x862a0906
dec eax
xchg bh, dh
or eax, 0x5050101
add byte [ebx], al
add byte [ecx], 1
add byte [ebp + 0x3072edcb], dh
dec ebx
add dh, byte [ecx + 0x4ae3c475]
pop ds
cli
sbb esp, esp
out 0xc8, al
mov ecx, 0xb71dddf5
mov ch, 0x31
cmc
test al, 0xa3
mov esi, 0x7a646d1a
or ch, byte [eax + 0x1c]
sbb ah, byte [ebp - 0x1cdeed15]
lahf
jp 0x403f99
push 0xeba51a1c
adc ah, byte [ecx]
jecxz 0x403f37
out 0xd9, al
fist dword [edi + 0x6185043d]
push ds
fstpnce st(3), st(0)
xchg edi, eax
cmp eax, 0x1e618504
fidivr word [edi - 0x5e]
mov byte [0x7b1391c8], al
pop ds
inc ecx
aad 0x81
push 0x40
inc edi
mov ebx, dword [edx - 0x7d]
dec eax
fidivr word [edi]
xor edx, dword [eax - 0x63f4af56]
mov ebp, 0x6177fc05
xchg esp, eax
mov cl, ch
push esi
je 0x403f8c
xchg esi, eax
push edx
and byte [ecx + 0x422a12ff], bh
jle 0x403fec
push ebp
push 0xffffffffffffff86
xor ah, dl
insb byte es:[edi], dx
out 0xb2, eax
xor al, 0x65
inc ebx
sar dword [edi + 0x31d5d65a], 0xc0
enter 0x1de6, 0xffffffffffffffdc
rcl bh, cl
mov al, byte [0xd0ac2d31]
and byte [ecx + 0x244b122d], cl
loopne 0x404045
stosb byte es:[edi], al
out 0xe9, eax
int3
mov eax, dword [0x6b370ae4]
fmul dword [edx - 0x4c]
cdq
test bh, bl
dec ebp
sub ch, byte [edx - 0x4378d3ae]
mov ebp, 0x22fd7c15
ret
xor esi, dword [ebx - 0x3e]
insb byte es:[edi], dx
jae 0x404003
fmul qword [esi + 0x7c]
xor byte [ebx - 0x12], cl
dec esi
jl 0x404078
dec ebx
out dx, al
mov byte [esi - 0x6e], dl
int1
lea edi, [edx - 0x1f]
jp 0x40403e
jecxz 0x40409e
mov bh, 0xf3
int 0xfc
js 0x404078
mov edi, 0xe6797734
clc
into
push ds
idiv byte [ebp + 0x28d9b19a]
xchg ecx, eax
xor byte [edx - 0x7dcff5fa], al
add al, 0xf2
mov al, byte [0x2010203]
add dl, byte [eax]
push edx
add ch, ah
stosb byte es:[edi], al
add al, byte [edx]
adc byte [edx], dl
in eax, 0xaa
and eax, 0x861afc56
in eax, dx
xchg esi, eax
leave
aam 0x4b
xor eax, edi
xor byte [0x862a0906], cl
dec eax
xchg bh, dh
or eax, 0x5050101
add byte [eax], dh
or edx, 0x9300b31
push es
or esi, dword [eax]
or dword [esi], eax
add edx, dword [ebp + 4]
push es
adc eax, dword [edx]
push ebp
push ebx
xor dword [edi], edx
xor byte [0x4550306], dl
or dl, byte [ebx]
push cs
push esi
jb 0x404122
push ebx
imul esp, dword [edi + 0x6e], 0x6e49202c
arpl word [esi], bp
xor dword [edi], ebx
xor byte [0x4550306], bl
or edx, dword [ebx]
push ss
push esi
jb 0x40413b
push ebx
imul esp, dword [edi + 0x6e], 0x75725420
jae 0x404150
and byte [esi + 0x65], cl
je 0x404158
outsd dx, dword [esi]
jb 0x40414f
xor dword [edx], edi
xor byte [eax], bh
push es
add edx, dword [ebp + 4]
or edx, dword [ebx]
xor dword [eax], ebp
arpl word [ecx], bp
and byte [edx], dh
xor byte [eax], dh
and byte ss:[esi + 0x65], dl
jb 0x404165
push ebx
imul esp, dword [edi + 0x6e], 0x6e49202c
arpl word [esi], bp
and byte [0x726f4620], ch
and byte [ecx + 0x75], ah
je 0x404179
outsd dx, dword [esi]
jb 0x40417d
jp 0x40417b
and byte fs:[ebp + 0x73], dh
and byte gs:[edi + 0x6e], ch
insb byte es:[edi], dx
jns 0x404152
inc ebp
xor byte [ebx + 6], al
add edx, dword [ebp + 4]
add edx, dword [ebx]
cmp al, 0x56
jb 0x404198
push ebx
imul esp, dword [edi + 0x6e], 0x616c4320
jae 0x4041ac
and byte [ebx], dh
and byte [eax + 0x75], dl
bound ebp, qword [ecx + ebp*2 + 0x63]
and byte [eax + 0x72], dl
imul ebp, dword [ebp + 0x61], 0x43207972
jb 0x4041c3
imul esp, dword [esi + 0x69], 0x69746163
imul sp, word [ebx + 0x61], 0x6974
arpl word [ecx + 0x74], sp
imul ebp, dword [edi + 0x6e], 0x74754120
push 0x7469726f
jns 0x404183
outsd dx, dword [esi]
outsb dx, byte [esi]
and byte [ecx + 0x75], al
je 0x4041c5
outsd dx, dword [esi]
jb 0x4041c9
je 0x4041db
and byte [0x30354720], ch
sub eax, 0x30354720
inc edi
xor eax, 0xd171e30
xor dword [eax], esi
xor byte [edx], dh
push ds
pop ss
or eax, 0x32303031
xor byte [eax], bh
xor byte [eax], dh
xor byte [eax], dh
xor byte [eax], dh
pop edx
pop ss
or eax, 0x32303032
xor byte [edi], dh
xor byte [eax], dh
xor dh, byte [eax]
aaa
xor dh, byte [ebx]
xor eax, 0x5a393539
xor byte [ecx + 0x300b31b4], al
cmp dword [0x81305a39], esi
mov ah, 0x31
or esi, dword [eax]
or dword [esi], eax
add edx, dword [ebp + 4]
push es
adc eax, dword [edx]
push ebp
push ebx
xor dword [edi], edx
pop ss
xor byte [0x4550306], dl
or dl, byte [ebx]
push cs
push esi
jb 0x40420f
push ebx
imul esp, dword [edi + 0x6e], 0x6e49202c
dec ecx
outsb dx, byte [esi]
arpl word [esi], bp
xor dword [edi], ebx
xor byte [0x4550306], bl
or edx, dword [ebx]
push ss
push esi
jb 0x404228
push ebx
imul esp, dword [edi + 0x6e], 0x75725420
and byte [edx + esi*2 + 0x75], dl
jb 0x40423c
jae 0x40423d
and byte [esi + 0x65], cl
je 0x404245
outsd dx, dword [esi]
jb 0x40423c
xor dword [ebx], edi
xor byte [ecx], bh
push es
add edx, dword [ebp + 4]
or edx, dword [ebx]
xor dl, byte [ebp + 0x72]
insd dword es:[edi], dx
jae 0x404202
outsd dx, dword [esi]
and byte [ebp + 0x73], dh
and byte gs:[ecx + 0x74], ah
and byte [eax + 0x74], ch
je 0x404260
jae 0x40422c
das
das
ja 0x40426d
ja 0x404226
jbe 0x40425f
jb 0x404265
jae 0x404267
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
arpl word [edi + 0x6d], bp
outsd dx, dword [esi]
insd dword es:[edi], dx
das
jb 0x404277
popal
and byte [eax], ch
arpl word [ecx], bp
xor dword [eax], esi
xor dword [esi], ebp
xor byte [esi + eax], ch
xor byte [ecx], dh
xor byte cs:[esi + eax], ch
add edx, dword [ebp + 4]
add edx, dword [ebx]
and eax, 0x69726556
push ebx
imul esp, dword [edi + 0x6e], 0x616c4320
outsb dx, byte [si]
and byte [ebx + 0x6c], al
popal
jae 0x40429a
jae 0x404248
and byte [ebx], dh
and byte [ebx + 0x6f], al
xor esp, dword [eax]
inc ebx
outsd dx, dword [esi]
and byte gs:[ebx + 0x69], dl
outsb dx, byte [si]
imul ebp, dword [esi + 0x67], 0x31303220
xor byte [eax], ah
inc ebx
inc ecx
xor byte [edx + 0xd302201], al
push es
or dword [edx], ebp
dec eax
xchg bh, dh
or eax, 0x5010101
add byte [ebx], al
add byte [ecx], 0xf
add byte [eax], dh
add byte [ecx], 0xa
add al, byte [edx - 0xafffeff]
cmc
and ecx, dword [ebx + 0x5e]
movsd dword es:[edi], dword [esi]
xlatb
mov bh, byte [ebx + 0x57d4e932]
xor ch, cl
aam 0x57
imul edi
in al, 0xc7
jle 0x40421f
sbb dword [eax + 0x7d9da8fe], ebx
xchg esp, eax
jge 0x40420d
div byte [esi]
imul edx, dword [eax], 0xffffffd7
jne 0x404201
xor byte [edi + 4], bh
push 0x752bcb7f
push ds
int 0x1d
or byte [edi + ebx*8 + 0x37a79469], cl
mov dword [0xe0807b9c], eax
cdq
loope 0x404288