Function at 0x31edb5c
Capabilities:
Encode data using xor

Disassembly:
jmp 0x31edb66
add byte [eax], al
add byte [eax], al
pushal
call 0x31edb6c
pop ebp
sub ebp, 0x10
sub ebp, 0x2dedb5c
jmp 0x31edb82
mov eax, 0x2dedb5c
add eax, ebp
add eax, 0x4c
mov ecx, 0x5d7
mov edx, 0xd13501e0
xor byte [eax], dl
inc eax
dec ecx
jne 0x31edb99
test esi, esi
invalid
jmp 0x31edbac
add byte [eax], al
mov edi, 0x6b242d60
sub eax, 0xe0dc696b
imul ebp, dword [0xe0dc696b], 0xffffffe0
loopne 0x31edc16
imul ebx, esp, 0x61e0e0e0
fsubr st(0), st(0)
loopne 0x31edb94
popal
and dword [eax], ebx
loopne 0x31edb99
loopne 0x31edb9e
sub eax, 0xe0e0e658
loopne 0x31edc1c
enter 0xffffffffffffe0e0, 0xffffffffffffffe0
pop ss
add ah, bl
sub byte [ebx + 0x61], ch
imul esp, dword [ecx - 0x14], 0xffffffe0
loopne 0x31edbb0
popal
in al, dx
loopne 0x31edbaf
loopne 0x31edbb4
jecxz 0x31edbf7
and eax, 0x5c88b0b0
xchg edx, eax
shl eax, 0x88
mov al, 0xb0
mov byte [edx + edx*4 - 0x3f], bl
loopne 0x31edb62
inc eax
mov byte [ebp - 0x1e], bl
loope 0x31edbac
pop ebp
loop 0x31edbc0
int3
les ecx, [eax + 0x2c59be30]
or ch, ah
mov byte [eax], dh
mov esi, 0xe5082c59
in eax, 0xe0
loopne 0x31edbcb
loopne 0x31edbca
loopne 0x31edbf5
or edx, ecx
loopne 0x31edbcf
retf 0xe0e0
loopne 0x31edba6
insd dword es:[edi], dx
mov esp, es
loopne 0x31edc61
imul esp, dword [ebp - 0x18], 0xffffffe0
loopne 0x31edbdb
call 0x6effbcdc
call 0x6effbcdc
imul esi, dword [ebp - 0x14], 0xffffffe0
loopne 0x31edbe1
jne 0x31edbea
loopne 0x31edbe0
loopne 0x31edc6d
imul ebp, dword [ebp - 0x10], 0xffffffe0
loopne 0x31edbe7
insd dword es:[edi], dx
invalid
and dword [ecx], ecx
loop 0x31edbdc
loop 0x31edc70
and ah, ah
test eax, 0x1f1465ef
pop ds
pop ds
mov ebp, 0x6be0ec22
in al, dx
loopne 0x31edc86
insb byte es:[edi], dx
invalid
loopne 0x31edcc1
pop ebp
call 0x64ffbd3c
adc esi, esp
clc
int3
popal
adc esi, esp
clc
int3
shr dword [ecx], cl
sal dword [edx], cl
arpl word [eax], cx
sub ebx, edx
xor ah, byte [ebx + 8]
in eax, 0xa8
out dx, eax
scasb al, byte es:[edi]
loopne 0x31edc54
loopne 0x31edc65
push 0xe0e0e0a8
xchg byte [ebx - 4], ch
fldenv [eax + 0x1b]
or bh, ch
cli
loopne 0x31edc67
loopne 0x31edc68
loopne 0x31edce9
pushal
sbb ecx, dword [ecx]
out dx, eax
int1
loopne 0x31edc70
loopne 0x31edc18
popal
sbb ebx, dword [edi]
invalid
pop ds
pop ds
imul ecx, esp, 0xffffffc4
insd dword es:[edi], dx
test ah, al
in al, 0x22
int3
in al, dx
loopne 0x31edc83
imul ecx, dword [esi + esi*4], 0xffffffb7
mov ch, 0x6b
xchg ebp, eax
in al, dx
imul ebx, dword [ebp + 0x60521ce8], 0x6a
or al, 0xb6
mov bh, 0xb5
imul edx, dword [ebp - 0x17629414], 0x1c
push edx
call 0x6d7f2ef9
sbb al, 0x52
pushal
push 0xffffffffffffffe6
popal
out 0x61, al
loope 0x31edcc2
loopne 0x31edcc4
push 0xe12761e7
loopne 0x31edccb
loopne 0x31edd48
pop ebx
loop 0x31edccf
loopne 0x31edcd1
loop 0x31edd25
out dx, eax
in eax, 0xe0
loopne 0x31edcd8
loopne 0x31edcd9
loopne 0x31edd64
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
arpl word [eax], di
mul byte [esi + 0x63ef32f2]
cmp byte [edi], bl
pop ds
pop ds
pop ds
loop 0x31edd38
out dx, eax
in eax, 0xe0
loopne 0x31edcec
loopne 0x31edd77
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
mul byte [esi + 0x63ef32f2]
mov ah, al
loopne 0x31edcf7
xor ch, bh
arpl word [edx - 0x2c1f1f20], cx
loopne 0x31edcf6
loopne 0x31edceb
shl dword [eax], cl
loop 0x31edd4d
and dl, ah
xor ch, bh
out dx, eax
in eax, 0xe0
loopne 0x31edd01
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
xor ch, bh
arpl dx, cx
loope 0x31edd0b
loopne 0x31edd0f
xor ch, bh
in eax, 0xe0
loopne 0x31edd14
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
xor dh, bl
and dl, ah
xor ch, bh
in eax, 0xe0
loopne 0x31edd23
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
and dl, ah
xor ch, bh
in eax, 0xe0
in eax, 0xe0
loopne 0x31edd32
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
xor ch, bh
out dx, eax
in eax, 0xe0
loopne 0x31edd41
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and bh, ch
and bh, ch
out 0xe0, al
loopne 0x31edd4e
imul edi, dword [edi], 0xffffffcb
cmp byte [edx - 0x1d], ch
push 0xe25ba7e7
loopne 0x31edd5b
pop ebx
loop 0x31edd5a
loopne 0x31edd5c
loopne 0x31edd86
or dword [eax + 0x581f1f1f], edx
nop
pop ds
pop ds
pop ds
pop eax
loope 0x31edd64
loopne 0x31edd66
loop 0x31eddba
out dx, eax
in eax, 0xe0
loopne 0x31edd6e
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
and dl, ah
xor ch, bh
loop 0x31eddc9
out dx, eax
in eax, 0xe0
loopne 0x31edd7d
loopne 0x31edd7c
loopne 0x31ede08
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
mul byte [esi + 0x62ef32f2]
pop ds
out dx, eax
bound edi, qword [esi]
pop ds
pop ds
pop ds
retf
aam 0xe0
loopne 0x31edd95
pop ecx
loope 0x31edd98
loopne 0x31edd9a
loop 0x31eddee
out dx, eax
in eax, 0xe0
loopne 0x31edda2
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
sub edx, esp
xor ch, bh
loop 0x31eddfd
out dx, eax
in eax, 0xe0
loopne 0x31eddb1
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
xor ch, bh
bound edi, qword [esi]
pop ds
pop ds
pop ds
mov dh, 0x6b
pop ss
retf
out 0xa6, al
imul ecx, dword [eax], 0x59
loope 0x31eddd5
loopne 0x31eddd7
loop 0x31ede2b
out dx, eax
in eax, 0xe0
loopne 0x31edddf
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor dh, bl
sub edx, esp
xor ch, bh
mul byte [esi + 0x29f332f2]
loop 0x31ede3a
out dx, eax
in eax, 0xe0
loopne 0x31eddee
push 0xfffffffffffffff6
cmpsb byte [esi], byte es:[edi]
xor ch, bh
bound edi, qword [esi]
pop ds
pop ds
pop ds
popal
sbb al, ah
popfd
loopne 0x31eddff
popal
cmp dword [edi], ebx
pop ds
pop ds
pop ds
popal
sbb al, ah
in eax, 0xe0
loopne 0x31ede8d
popal
cmp dword [edi], ebx
pop ds
pop ds
pop ds
popal
sbb byte [eax - 0x20], ah
loopne 0x31ede17
popal
xor eax, esp
loopne 0x31ede1c
loopne 0x31ede9f
sbb byte [eax - 0x20], ah
loopne 0x31ede23
popal
xor eax, esp
loopne 0x31ede28
loopne 0x31ede00
mov dh, 0x6b
pop ss
retf
imul edx, dword [edi], 0xffffffcb
adc byte [ebx], dl
inc esp
mov esi, 0x1f1e7b09
adc eax, dword [esi + edi*4 + 9]
jnp 0x31ede72
pop ds
pop ds
push 0xffffffffffffffe6
cmpsb byte [esi], byte es:[edi]
out 0xa6, al
shr dword [ecx], cl
and byte [eax], cl
loope 0x31ede4e
cli
loopne 0x31ede43
loopne 0x31edec6
xor edx, esp
loopne 0x31ede49
loopne 0x31eded6
or byte [esi + 0x10cb176b], dh
adc eax, dword [esi + edi*4 + 0x5b]
loope 0x31ede57
inc esp
mov esi, 0xe0e0e15b
loopne 0x31ede83
loopne 0x31ede59
or dword [ebx - 0x42e0e0e2], edx
xchg ebx, eax
push ds
pop ds
pop ds
mov ebp, 0x6be89dcb
retf
daa
mov edi, 0xbd056bbe
and ch, al
loopne 0x31edef8
mov esi, 0x22bd056b
call 0xc7fb4a6f
imul ebx, esp, 0xffffffc4
fadd st(4), st(0)
insd dword es:[edi], dx
test ah, al
in al, 0x6b
aam 0xc4
insd dword es:[edi], dx
test ah, al
in al, 9
in al, 0xe0
loopne 0x31ede7f
jecxz 0x31edeff
mov edx, 0x3bbc5843
loop 0x31ede8c
jecxz 0x31edecf
and eax, 0xe38d2061
loopne 0x31ede90
popal
and byte [ebp + 0x59e0e0e3], cl
pop ecx
push esi
loop 0x31ede94
loopne 0x31edf10
mov dword [edx - 0x37], edx
xchg ecx, eax
sal al, 1
mov al, byte [0x1665efa9]
pop ds
pop ds
pop ds
or esp, esp
loopne 0x31edea8
loopne 0x31ede67
dec edi
push esi
or dword [esi], 0x77
push cs
jle 0x31eded4
invalid
push cs
jle 0x31eded9
add dh, byte [0x898929be]
xor eax, 0x898929be
sub dword [ecx + 0x778a8989], ecx
invalid
mov dword [edx + 0x1fd2df77], ecx
add bh, cl
mov ch, 0x1f
add cl, byte [0x8989bdb9]
mov dword [edx - 0x7621fdaf], esp
push cs
jo 0x31edef7
invalid
push cs
jo 0x31edf02
jae 0x31ede85
mov dword [ecx - 0x30f27977], ecx
xchg byte [0x898989cf], cl
mov bl, byte [edi + 8]
mov dword [ecx + 0x85f8a89], ecx
dec esi
or dword [ecx + 0x60088989], 0x89898981
or byte [eax - 0x77], dh
or dword [ecx + 0x70088989], 0x89898989
xchg byte [0x76767659], cl
out dx, eax
mov dword [ecx - 0x768ff777], ecx
mov dword [ecx + 0x590d8689], ecx
jbe 0x31edf94
jbe 0x31edf0f
add cl, byte [esi + 0xa856148]
imul eax, dword [esi - 0x76758ef8], 0xc868989
test byte [ecx + 0x2ef8989], cl
mov cs, word [eax]
imul esi, dword [esi - 0x7a], 0x4b8a8989
mov byte [ecx + 0x4e0ac0c0], dl
mov esp, dword [eax + 0x41]
jbe 0x31edfc0
jbe 0x31edfac
lea ecx, [ecx - 0x49fe7677]
leave
jl 0x31edf86
aad 0x52
push edi
mov ecx, dword [edx - 0x68b6f7b4]
lea ecx, [ecx - 0x7473cf77]
mov dword [ecx - 0x3f5610cd], ecx
add edi, dword [ecx - 0x793f3667]
or al, 0x7f
jbe 0x31edfea
jbe 0x31edfd6
lea ecx, [ecx + 0xe428989]
movsb byte es:[edi], byte [esi]
shl byte [ecx + edx*4 - 0x2d], 0x64
push ebx
fsubr dword [edi - 0x11]
out dx, eax
out dx, eax
in al, dx
adc dword [eax + edx*4 - 0x1d], ebp
out dx, eax
loopne 0x31edffb
sub al, 0xef
out dx, eax
out dx, eax
test al, 0xe3
in al, dx
sub dword [edi - 0x4df885f0], edi
push edx
in eax, dx
outsb dx, byte [esi]
pop ss
out dx, eax
out dx, eax
out dx, eax
out dx, eax
loopne 0x31ee012
sti
out dx, eax
out dx, eax
out dx, eax
js 0x31ee012
xchg edi, eax
jecxz 0x31ee029
in al, dx
sub dword [edx - 0x75], esp
retf
bound ecx, qword [ebx - 0x1499ec35]
retf
insb byte es:[edi], dx
nop
jecxz 0x31edfb3
loopne 0x31ee031
invalid
push 0xffffffffffffffe5
out dx, eax
out dx, eax
out dx, eax
insb byte es:[edi], dx
nop
invalid
in al, dx
add dword [edx + edx*4 - 0x11], ebp
out dx, eax
loopne 0x31ee05d
mov al, byte [0x68efefef]
push es
xchg bh, ch
out dx, eax
out dx, eax
push 0xef866406
push 0xcb8b6206
adc esp, dword [esi - 0x15]
retf
jmp 0x31edfcf
out dx, eax
mov esi, 0xefefe606
out dx, eax
in al, dx
and dword [esi + 0x2e], ebp
in eax, dx
out dx, eax
out dx, eax
out dx, eax
mov esi, 0x13cb8b62
jmp 0x31edff4
adc byte [ebp + 3], bh
mov dl, 0x52
in eax, dx
mov ch, 0x66
stosb byte es:[edi], al
out dx, eax
jmp 0x31ee001
out dx, eax
out dx, eax
xchg dword [edi + 0xe], ebp
xor ebp, ebp
bound ecx, qword [ebx - 0x3c99ec35]
retf