Function at 0x47b6be
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x47b7fc
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x47b72e
mov ebx, dword [ebp - 0x5c]
jmp 0x47b731
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x47bf74
xor edx, edx
test edx, edx
je 0x47b795
cmp eax, 0x10
jb 0x47b74e
mov edx, dword [ebp - 0x5c]
jmp 0x47b751
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x47b779
call 0xd607eb
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x47b783
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x47bd4f
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x47be93
int3
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x47be41
mov dword [ebp - 4], 8
add byte [eax], al
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.0047e3e2
push 0xe4a7c0
lea eax, [ebp + 0x78ffff70]
cmp eax, 0xa5e26d68
and dword [edi + 0x56], edi
invalid
fistp word [edx - 0x1b513935]
call 0xcf5e0da5
clc
dec ebx
lodsd eax, dword [esi]
fsub st(1)
or dl, ah
mov dl, dl
mov ecx, 0x18e878e2
loope 0x47b815
loop 0x47b797
sar byte [ecx + 0x18e878e2], cl
mov cl, 0x52
fnstsw word [edx]
xor eax, 0xd427dd80
dec eax
je 0x47b80b
inc ecx
enter 0xffffffffffffd8cd, 0x58
jmp 0x47b7b5
popfd
fnstcw word [edi + 0x62]
insb byte es:[edi], dx
pop ebx
cmp cl, byte [ebp + 0x4d167d4e]
invalid
mov cl, dl
xor dword [ebx], 0xfffffffd
xchg edi, eax
jb 0x47be7c
jns 0x47be57
cdq
ror ch, 1
add eax, 0x4e2cdb9b
jnp 0x47bea3
cmp eax, 0xa54d0b64
or ecx, dword [ebp - 0x5b]
sub ch, byte [ebp - 0x5e]
pop ds
push edi
popfd
mov esp, 0x8854a4be
out 0x98, al
xor bh, byte [0x94d8edaa]
xchg ecx, eax
add eax, 0x2f649358
jge 0x47be81
stosb byte es:[edi], al
sub eax, 0x5b480a27
lodsd eax, dword [esi]
or eax, 0x220cd1f
mov dword [0x84cd28cf], eax
add ah, byte [ebx - 0x7b32d731]
adc eax, esi
mov al, 0xa8
cwde
mov byte [esp + ebp*8], ch
jl 0x47bef7
add al, byte [ecx - 0x3cd9d7ed]
sbb eax, 0x6d3b0f3b
fmul qword [ecx - 0x62]
jge 0x47beaf
adc ebp, dword [eax]
ret
jp 0x47beac
inc esp
dec edx
invalid
sub edx, dword [ebp - 0x60]
jg 0x47bee7
invalid
call 0xec32dad6
pop esi
sbb al, 0xe4
call 0x216fdb96
jmp 0x40156218
int 0x3f
clc
push eax
fstp dword [ebp + 0x76]
in eax, dx
pushfd
jge 0x47befa
insb byte es:[edi], dx
sbb bl, ah
iretd
inc ebx
dec eax
adc byte [eax], bh
mov esi, 0x5de8fdeb
add al, 0x4d
fcom dword [ebx - 0x2c]
lodsd eax, dword [esi]
clc
wait
or eax, 0xb8fdb81f
in eax, dx
movsd dword es:[edi], dword [esi]
or eax, dword [ebx + 0x41]
js 0x47bf9a
push 0x9a119321
or eax, 0x3d613fb7
cwde
or ecx, eax
dec edx
popal
cmp eax, 0x4ac80b98
dec esi
jmp 0x38659815