Function at 0x20c691d0
Capabilities:
Encode data using xor

Disassembly:
jmp 0x20c691da
pushal
call 0x20c691e0
pop ebp
sub ebp, 0x10
sub ebp, 0xc691d0
mov al, byte [esp + 0x28]
cmp al, 1
je 0x20c69204
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x20c6920d
mov eax, 0xc691d0
add eax, ebp
add eax, 0x63
mov ecx, 0x5d3
mov edx, 0xc30aaa5f
xor byte [eax], dl
inc eax
dec ecx
jne 0x20c69224
jmp 0x20c69237
aam 0x92
aam 0xd6
arpl word [edi + 0x5f], bx
pop edi
ficomp word [esi + 0x5f5f5fa7]
pop esp
xchg edx, eax
out 0x56, eax
pop edi
pop edi
pop edi
in eax, 0x77
pop edi
pop edi
pop edi
test al, 0xbd
pop esp
xchg edi, eax
aam 0xde
push ebx
pop edi
pop edi
pop edi
pop esp
lcall 0x5bd6, 0xa37b3bd2
jnp 0x20c69274
aaa
jecxz 0x20c6929d
xor eax, 0x4c375f7f
jg 0x20c692c9
aaa
dec esp
js 0x20c69267
pop edi
pop esi
jae 0x20c692ed
aaa
fnsave dword [edi + 0x5ab7fac1]
mov bh, 0xc1
cli
mov bh, 0x5a
pop edi
pop edi
pop edi
mov dh, 0x69
pop edi
pop edi
pop edi
sar byte [ebx], cl
jnp 0x20c69228
salc
jae 0x20c69303
sal byte [ebx], cl
jnp 0x20c692eb
aam 0xda
push edi
pop edi
pop edi
pop edi
aam 0xca
push ebx
pop edi
pop edi
pop edi
aam 0xd2
dec edi
pop edi
pop edi
pop edi
sahf
mov dh, 0x5d
outsb dx, byte [esi]
pop ebp
fcomp qword [ebp - 0x25afe9a5]
stosd dword es:[edi], eax
mov al, byte [0x73d4a0a0]
jnp 0x20c69283
cmp edi, dword [ebx + 0x5b]
popfd
push ebx
pop edi
aam 0xd3
jnp 0x20c69316
pop edi
pop edi
pop edi
aaa
jecxz 0x20c692f6
xor eax, 0x4c375f7f
jg 0x20c69322
aaa
dec esp
js 0x20c692c0
pop edi
pop esi
jae 0x20c69346
sar byte [ebx], cl
jnp 0x20c69272
salc
push ebx
jnp 0x20c6928a
pop edx
pop edi
pop edi
pop edi
mov dh, 0xc
pop ebp
pop edi
pop edi
or dl, dl
xor edi, dword [ebx + 0x5f]
mov al, byte [0x2aa0532a]
push edi
mov bh, 0xdb
pop edi
pop edi
pop edi
aam 0xe2
push edi
loop 0x20c69346
pop edi
pop edi
pop edi
fisubr word [esi + 0x35d02577]
fisubr word [esi + 0x35d02577]
insb byte es:[edi], dx
xchg esi, eax
fisubr word [ebp + 0x5e118559]
sal byte [0x2577aede], 1
sal byte [0xadde966c], 1
pop ecx
test dword [ecx], edx
pop esi
fisubr word [ebp + 0x5e118559]
insb byte es:[edi], dx
invalid
pop edi
pop edi
push eax
xlatb
pop ss
pop edi
pop edi
pop edi
cmp esp, edx
inc ebx
fbld tbyte [edi + esi*4 + 0x5f45db50]
fbld tbyte [edi + esi*4 + 0x5f45db50]
pop edi
pop edi
fbld tbyte [esi + esi*4 + 0x5f4edb50]
pop edi
pop edi
cmp esi, ebx
movsb byte es:[edi], byte [esi]
mov al, byte [0x4adb507a]
pop edi
pop edi
pop edi
push ds
mov dh, 0x93
mov al, byte [0x1376a0a0]
pop si
adc esp, dword [esi + 0x5e]
fcomp qword [esi + 0x5bb7dc5a]
mov dh, 0xe2
mov al, byte [0xb76a0a0]
pop bp
fcomp qword [esi + 0x5bb5dc59]
fdiv qword [edi - 0x5f0b49a6]
mov al, byte [0x7b73d4a0]
sar byte [ebx], cl
jnp 0x20c693c8
popfd
push ebx
pop edi
or dl, ah
mov bl, 9
or byte [edx], cl
aam 0x2a
push ebx
aam 0x22
push edi
mov dword [0x59d5dfed], eax
ficomp word [ecx + 0x5f5f5f5e]
xlatb
pop eax
ficomp word [eax + 0x5f5f5f5e]
in al, 0x5d
pop edi
pop edi
pop edi
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fadd qword [edi + 0x5da0a0a0]
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fdiv qword [0x6c5f5f5f]
lahf
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fdiv qword [ebp + 0x5e]
lea edx, [eax - 0x24]
jne 0x20c6942b
pop edi
pop edi
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
lahf
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
lahf
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
lahf
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
lahf
push eax
fistp dword [ecx + 0x5f]
pop edi
pop edi
aam 0x80
je 0x20c6939c
aad 0x5c
xlatb
pop eax
sbb ah, ah
pop ebp
pop edi
pop edi
pop edi
mov dh, 0x2f
mov al, byte [0x5ee7a0a0]
pop edi
pop edi
pop edi
pop ebp
lea edx, [eax - 0x26]
pop edx
push eax
ficomp dword [edx + 0x5f]
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
lahf
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fld qword [ecx + 0x74a0a0a0]
pushfd
in al, 0x5e
pop edi
pop edi
pop edi
push eax
fisubr dword [ebx + 0x5f]
pop edi
pop edi
out 0x5e, al
pop edi
pop edi
pop edi
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
xchg esi, eax
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fld qword [ecx + 0x9a0a0a0]
aam 0xa8
je 0x20c6942e
lodsb al, byte [esi]
sti
add dword [esi - 0x5f5f5fa9], esi
pop ss
sahf
mov edi, 0x1959d557
aam 0xb7
out 0x5e, al
pop edi
pop edi
pop edi
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
dec esp
xchg esi, eax
pop ebp
lea edx, [eax - 0x26]
pop edx
pop edi
pop edi
pop edi
aad 0x49
sbb dword [ebp - 0x73], ecx
push eax
fld qword [ecx - 0x215f5f60]
cmpsd dword [esi], dword es:[edi]
pop edi
and bl, byte [edi + 0x5f]
fiadd word [esi - 0x5f5f5f60]
fisub word [edi + 0x5f5f5a5f]
fiadd word [esi - 0x5f5f5f60]
fisub word [edi + 0x5f5f5fdf]
fimul word [esi + 0x5f5f5f5f]
fisub word [edi + 0x5f5f5fdf]
fimul word [esi + 0x5f5f5f5f]
or esp, edx
test al, 0x74
scasd eax, dword es:[edi]
lodsb al, byte [esi]
sti
add dword [esi - 0x5f5f5e3c], esi
aad 0x59
sbb dword [esi + edx*4 - 0x61], ebp
mov bh, 0x5e
push eax
fild dword [ebp + 0x5f]
pop edi
pop edi
fimul word [esi + 0x5f5f5f5d]
aam 0xb7
or esp, edx
test al, 0x74
scasd eax, dword es:[edi]
lodsb al, byte [esi]
sti
add esp, esp
pop esi
pop edi
pop edi
pop edi
mov dh, 0x2c
mov eax, dword [0x7402a0a0]
and dl, byte [edi - 0x2c]
cwde
add byte [ecx], al
aam 0xba
add bl, byte [ebp - 0x2bffa0a9]
imul edi, dword [ebx - 0x2e], 0x3b
jnp 0x20c69592
mov dh, 0x5b
pop edi
pop edi
pop edi
cmp dword [ebp - 0x7018404b], edi
into
cdq
pop edi
pop esp
lcall 0x5f5f, 0x5cc99fde
out 0xff, al
pop ebp
pop edi
pop edi
in eax, 0x4b
out 0xa4, eax
movq mm1, qword [edi + 0x1f]
push ss
push eax
fisubr dword [ecx - 0x495f5f60]
pop ebx
pop edi
pop edi
pop edi
dec eax
ret
retf 0x4bb1