Function at 0x47fb8e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp]
add byte [ebx - 0x7cee74f2], cl
xor eax, dword [eax]
jg 0x4bd7d9
xor al, byte [eax]
add al, al
jne 0x52d7ec
cmp dword [ecx], 0x7fffffff
mov eax, dword [eax]
add byte [esp + ecx*2 + 0x220003dc], al
add byte [edx + edx*8 + 0x1c70875], al
add dword [eax], eax
add byte [eax], al
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1d]
add cl, cl
je 0x47fc06
mov dword [eax + 0x210], 0
jle 0x47fbfb
add byte [ebp + 0x10], dl
mov eax, dword [esi]
lea edx, [edx + 4]
add byte [eax], al
mov edi, dword [eax - 0x3fffdf0]
add bh, bh
inc eax
jge 0x47fc01
mov dword [eax + edi*4], ebx
mov eax, dword [esi]
push es
call [eax + eax]
add al, byte [eax]
add byte [ebx + 0x7501e9], al
sub ecx, 1
jne 0x47fc06
add byte [esi], cl
mov ebx, dword [ecx + 8]
test dword [edi + 0xf18400], ecx
add byte [eax], al
mov edi, dword [ecx]
cmp edi, dword [ecx + 0xe810]
jne 0x47fd04
add byte [eax], al
test edi, edi
jle 0x47fc54
lea ecx, [eax + eax - 0x7d]
mov eax, 0x104
add byte [eax], al
add cl, cl
cmp dword [eax + 0x104], 0
add byte [eax], al
leave
add byte [eax], al
add byte [ebx + 0x100e9], cl
add byte [ebx], bh
xor byte [ebx - 0x72ffff8b], cl
mov eax, 0xf7000000
add al, al
add al, 0x3b
xlatb
jl 0x47fc2e
xor eax, dword [eax]
add byte [ebp + 0x10], dl
test edi, edi
jle 0x47fbfa
add byte [ecx + 0x110], al
mov dword [ebp], eax
add byte [esi], al
lea ebx, [ebx + 0x590000]
cmp dword [eax - 0x104], 0xea
jne 0x47fcf4
mov eax, 0x2000d441
imul ebx
sar edx, 7
mov eax, dword [eax]
add bl, ch
pop ds
add ebx, edx
mov ebp, ebp
add byte [ebx + 0x8b1055], cl
imul eax, dword [eax]
add al, dl
mov eax, dword [ebp + 8]
or dword [ecx], 0
mov dword [ebp + 0x10], edx
mov dword [ebp + 8], eax
add dword [eax], 0
jne 0x47fc6e
test edx, edx
js 0x47fd0b
add byte [ecx + 4], al
lea ebx, [edx*4]
mov ecx, dword [ebx + eax]
test ecx, ecx
pop ds
add byte [ebp - 0x25], cl
add eax, dword [eax]
push 0x10
call fcn.0048fcc9
add esp, 4
js 0x47fcce
mov ecx, edi
push dword [ebp + 0xc]
mov dword [edi], 0
call fcn.0048b6be
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov dword [eax], eax
add byte [ebx + 0x4418b0e], cl
ja 0x47fcee
add ebx, dword [edi + 0x5e]
pop ebx
pop ebp
ret
mov eax, dword [eax]
add byte [ebp + 8], bl
cdq
idiv dword [ebx - 0xffa0]
mov ebx, eax
jmp 0x47fc8b
xor eax, dword [eax]
add bh, ah
push ebp
mov ebp, esp
xor dword [eax + 0x64ec8300], 0x53
mov ebx, dword [ebp + 8]
add byte [eax], al
dec esp
and al, 0x24
push edi
mov ebp, dword [ecx - 0x74cf7500]
into
call fcn.0047ffee
mov eax, dword [esi + 8]
mov eax, dword [eax]
test byte [eax], al
and al, 0x10
mov eax, dword [ebx + 4]
mov esi, dword [eax]
add byte [eax], al
call fcn.0047ffee
rol byte [eax], cl
or byte [ebx + 0x438b0478], cl
add al, 0
add byte [ebx + ecx*4], al
into
call fcn.0048b4ee
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [eax], eax
add byte [eax], ah
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x17317500]
mov dword [edx], eax
add byte [eax], al
add byte [eax], al
or byte [ebp + 0xe40244c], cl
add byte [eax + 4], dh
mov dword [esp + 0x20], esi
call fcn.0046fd79
mov edx, dword [ebp + 8]
cmp al, byte [eax]
xor eax, eax
mov dword [esp + 0x30], ebx
mov al, byte [eax]
add byte [eax - 0x7cf0dbb4], cl
rol byte [eax], cl
add ecx, dword [edi]
or byte [esi + 0x3da], 0
add al, 0x8b
dec eax
or al, ch
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx + 0x40c033d0], cl
add byte [eax], al
and al, 0x30
test dl, 2
push es
add byte [edx - 0x26], ch
add eax, dword [eax]
mov cl, al
and eax, dword [eax]
add byte [esp + 0xf], cl
mov dword [esp + esi], edx
test esi, esi
je 0x4bd82a
add dl, al
sub eax, ebx
je 0x4afeb2
sub eax, 1
jne 0x4afdd9
mov dword [esp + 0x23], ebx
add bh, bh
jle 0x47fe46
mov esi, dword [esp + 0x10]
add byte [eax], al
and al, 0x20
mov ecx, esi
push edi
lcall 1, 0xdbe81000
add byte [ebx + 0x24540000], cl
xor byte [ecx - 0x7b], bl
dec esi
add byte [eax + esi*4 - 0x74ffffff], al
inc esp
add byte [eax], al
mov ecx, edx
sub ecx, esi
shr dword [ebp + 0x7c89f900], 1
and al, 0x34
sub edi, eax
add byte [eax], al
cwde
add dword [eax], eax
add byte [eax + 0x15], dl
add byte [esp], ah
push edx
call fcn.0049eecc
add ah, al
or al, 0x85
ror byte [edi], 0x88
add dl, bl
add eax, dword [eax]
mov eax, dword [esp + 0x1c]
add byte [eax], al
and al, 0x14
lea ecx, [eax + eax]
rol byte [eax], cl
and al, 0x2c
add esi, ecx
test edi, edi
jg 0x47fe46
add byte [ebp + 8], bh
mov eax, dword [edi + 4]
add byte ds:[ebx + 0x199e8ce], cl
add byte [eax], al
add byte [eax], al
or byte [ebx - 0x16bb7700], cl
add byte [ebx + 0x308b0447], cl
mov ecx, esi
add byte [eax], al
add dword [eax], eax
add byte [ebx + 0x74005146], cl
and al, 0x14
mov edi, dword [eax + 4]
mov eax, dword [eax]
add al, ch
dec ebp
invalid
jp 0x4afde3
add byte [ecx], cl
add byte [ecx], al
jg 0x4edea1
add eax, dword [eax]
add byte [eax], al
mov dword [ebx + edi], 0x110c9a
add byte [edi + ecx*8 - 0x75], bh
inc edx
or byte [ebx], dh
add byte [eax], al
add al, 0
add byte [eax], al
not dword [ecx]
add byte [eax + 0xbd9f7c1], dl
enter 0x51, 0
xchg ebx, eax
add dword [eax], eax
mov ecx, dword [esi]
mov ah, 0
add al, 0x89
inc ecx
add al, 0x33
ror byte [ebx + 0x8410000], 0x7e
adc eax, 0x8b00b58d
dec ecx
add al, 0xc7
add al, 0x81
add byte [eax], al
add byte [eax], al
inc eax
mov ecx, dword [esi]
cmp ebx, ebp
add byte [esi + ebp*8 - 0x50], bh
add dword [edi + 0x5e], ebx
pop ebx
add byte [eax], al
push ebp
mov ebp, esp
mov edx, dword [ecx]
add al, byte [eax]
mov dl, 0x10
add al, byte [eax]
add byte [ebx + 0x190000fe], al
mov eax, dword [ebp + 8]
mov dword [esi], ebp
adc byte [ecx], al
add byte [eax], al
mov eax, dword [ecx]
inc dword [eax]
add byte [edx], al
add byte [eax], al
mov al, 1
push ebx
add dl, al
add al, 0
xor al, al
jmp 0x4afe5c
jmp [edx + 4]
xor dh, byte [eax - 0x62b9ebfc]
xchg dword [ecx + 0x44], eax
sti
mov ch, 0x30
fcos
mov byte [0xf9243d6d], bh
and al, 0xf9
sal dword [edx + 0x64], 0x8e
cmp edi, dword [esi - 0x60]
inc esi
arpl di, dx
sbb dword [edx + ebp*4 - 0x3447967], esp
mov ch, 0x27
mov dh, 0x52
neg dword [ebp + 0x3a]
cld
mov eax, 0x44ea6cd6
and byte [bp + si - 0x24], bh
xor byte [ebx + 0x43f8cf4d], al
outsb dx, byte [esi]
mov byte [0x407ff63b], al
int3
and eax, 0x7f4668b0
mov dl, 0xc0
pop ebp
xchg esi, eax
js 0x4bd7eb
wait
push 0xffffffffffffff9a
invalid
pop ebp
dec dword [ebx + 0x51]
pop ebx
dec byte [edx + 0x50]
pop edx
dec dword [edx + 0x50]
pop ebx
dec dword [ebx + 0x51]
pop ebx
dec byte [edx + edx*2 + 0x5c]
dec dword [ebx + 0x51]
pop esp
dec dword [edx + edx*2 + 0x5d]
dec byte [esi + 0x54]
pop edi
call dword [eax + 0x56]
popal
invalid
or dword [ebx - 0x6d757e02], 0xffffffff
jg 0x4ede32
nop
dec dword [esp + edx*4 - 0x555d0165]
mov al, 0xff
rol edi, 0xcc
invalid
invalid