Function at 0x47bd37
Capabilities:
Encode data using xor

Disassembly:
or eax, 0x548617
sub al, 0x3e
add byte [esi + edi], ch
scasd eax, dword es:[edi]
pop esi
pop es
inc ebx
adc edx, dword [esi + 0x6b]
cld
xor al, 0xe1
loopne 0x47bcc1
and dl, byte [ecx - 0x29722c]
in al, 0xbd
xchg esp, eax
dec edx
ljmp 0xe50d
stosb byte es:[edi], al
aas
pop edi
pop ecx
std
xchg esp, eax
jbe 0x47bcc5
cmp al, 0x87
cmpsb byte [esi], byte es:[edi]
mov edx, 0x9d441a41
lodsd eax, dword [esi]
jno 0x47bdb5
push ebp
cld
popal
mov bl, 0x72
cmc
sahf
push es
push ebp
and al, 0x1f
fldcw word [ebx - 0x3a890e44]
loopne 0x47bd67
xchg ebp, eax
pop ds
pop edx
imul esi, dword [edx + 0x13791583], 0xffffff81
jb 0x47bdc7
xor dword [edx + 0x5d], 0xa1a48f16
invalid
push ss
invalid
sbb al, 0xda
test esi, 0x7ffa1cd2
cli
push esp
out 0xe4, al
pop esp
pop esi
sbb dword [ebx + 0x7c], 0x6a
sub al, byte [eax]
xchg dword [esi], esp
dec esp
movsb byte es:[edi], byte [esi]
out dx, eax
add eax, 0xd45c88ed
in al, dx
pop ss
lodsb al, byte [esi]
aaa
std
mov byte [0xe07db6ce], al
adc esi, dword [ebp - 0x48]
pop eax
push edi
xchg ebx, eax
sub byte [esi + 0x7d], dh
inc ebp
aas
mov word [ebp + 0x16], cs
and edi, eax
imul ecx, dword [esi + ecx - 0x747b17a2], 0xffffffd4
mov esp, 0x1fa2f2e0
add byte [ecx + 0x31b9617c], bh
push ebp
and eax, 0x29be0a64
jno 0x47be35
cmc
ficomp word [esi + 0x56]
stosb byte es:[edi], al
pop ss
jp 0x47be5f
clc
push ebx
xchg byte [eax - 0x353ff2da], cl
mov ah, 0x95
leave
jmp 0xd1e247b2
shr dword [ebx + 0x68], 1
dec ebx
or ebx, dword [0x735e267f]
invalid
lodsd eax, dword [esi]
in al, 0x8d
fisttp word [edx + 0x33]
xor eax, 0x8395fd53
jbe 0x47be1f
push ss
xchg ebx, eax
out dx, al
or ah, byte [esi + eax - 0x5188ef0d]
stosd dword es:[edi], eax
into
sti
inc ecx
xor ecx, dword [esp + esi*4 + 0x3e93e906]
jns 0x47be4f
sbb eax, ecx
pop eax
test byte [ebp + 0x7c841872], bl
mov byte [0xadd67515], al
sbb byte [esp + edi*2 - 0x298aea5e], al
lodsd eax, dword [esi]
xor byte cs:[bp + si - 0x47b3], cl
xor al, 0xb6
or eax, 0x881c947
in eax, 0xc
cmp esp, edi
and al, 0x7c
add al, 0xcf
clc
clc
les esp, fs:[0x608c775e]
jbe 0x47bed8
dec esi
and bl, byte [ebx + 0x24]
scasd eax, dword es:[edi]
xchg esp, eax
jns 0x47be94
push ebx
leave
mov al, byte [0xe984b9e1]
test cl, ch
inc ecx
aaa
sahf
cwde
sahf
salc
les edi, [eax - 0x3f]
test eax, 0x4db4f6c3
push edi
mov ah, 0xf6
lea edx, [edx + ebx*2 + 0x686c2e9c]
adc eax, 0x6d88a76f
mov eax, 0xaec935f6
inc ebp
dec edx
mov ch, 0xbf
push es
retf 0xa418
adc esi, esi
outsb dx, byte fs:[esi]
inc eax
pop ebp
mov bl, 3
mov esi, dword [edx + 1]
or byte [ebp + 0x35], al
jnp 0x47bf4d
cmc
mov esp, dword [eax - 0x4d]
pop ss
rcl byte [edi + ecx*2 - 0xf4c5a6b]
movsb byte es:[edi], byte [esi]
pushfd
imul ebx, esp, 0xed9782b5
lodsb al, byte [esi]
mov dl, byte [eax - 0xaec0c56]
push ebx
shl dword [ebp + 0x196c6814], 1
add esp, dword [eax + 0x1ea14aed]
push ds
and eax, 0x3cdeea3a
xor al, 8
pop edi
insb byte es:[edi], dx
imul edi, ebp, 0x2b
rol dword [ecx + ecx + 0x1c943dcc], 1
xor dword [esi], edi
lodsd eax, dword [esi]
sbb al, 0x31
lodsd eax, dword ds:[esi]
or al, 0x58
std
ja 0x47bf19
sbb al, byte [ebx + 0x7a]
add byte [ecx + 0x4591fa9a], ah
cdq
sub eax, 0x9192302c
test eax, 0xfd766dca
arpl word [ebp + 0x755f0d66], sp
dec ecx
lodsb al, byte [esi]
wait
xor ah, byte [edi]
or eax, 0x12d47f54
loop 0x47bfc2
jg 0x47bf23
adc ah, byte [edx + 0x6f]
sbb eax, 0xcd70b554
aam 0x4d
mov ebx, cs
int3
iretd
ror byte [esi + 0x28e63ba2], 1
push ss
je 0x47bfec
inc esp
test dh, al
push eax
mov eax, dword [0x3f2f6e8b]
mov esi, ebx
movsb byte es:[edi], byte [esi]
or bl, byte [eax - 0x1f]
cmp eax, 0xf59a0d2e
xor al, 0x8e
mov esp, 0xcbc5460a
pop ebp
in al, 0xbb
push ecx
xchg edi, eax
popfd
test byte [edi - 0x1a8ab51c], 0xf9
jge 0x47bfb2
pop esi
mov ch, 0x9d
retf