Function at 0x47fc2f
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [eax + ecx*4]
cmp word [edx + 8], 0x33
jne 0x47fd5c
add byte [ebp], cl
mov edx, dword [eax + ecx*4]
mov eax, dword [edx]
push eax
dec esp
and al, 0x10
cmp dh, al
inc esp
and al, 0x23
add eax, ebp
cmpsd dword [esi], dword es:[edi]
out 0xff, eax
call 0x5c700c64
push ecx
inc ebp
mov word [eax + edx], fs
dec esp
and al, 0x52
dec esp
mov edx, dword [eax]
js 0x47f81d
call 0x8c40c3f1
inc esp
and al, 0x14
je 0x47f795
invalid
push edx
push eax
pushal
adc byte [eax - 0x18], dl
sub cl, cl
clc
dec dword [eax + 0x10]
pop esp
pop ebp
pop ebx
sbb dword [esp + ebx], 0x51
mov ecx, 0x507c8b10
dec esp
and al, 0x10
push esp
call 0xc340c3f1
sub byte [eax], al
and al, 0x18
test esi, esi
jne 0x47f896
call 0x57484094
pop esp
and al, 0x18
and al, ch
mov esi, gs
clc
lea ecx, [ecx + edx*2 + 0x44]
pop esp
lea eax, [esi + 0x10]
mov edx, ebx
or byte [esp + ecx], ah
dec esp
call 0x6d4019f1
push eax
lea esp, [eax]
pop esp
push edx
push eax
pushal
adc byte [eax + edx*2], bl
mov ecx, 0x507c8b10
call 0x8440c3f1
jl 0x47f8a1
adc al, 0x18
add byte [edi], cl
test bl, dh
add al, 0x7c
mov ecx, dword [ebx + 0x4c0424bc]
and al, 0x52
or byte [ecx + 0x44c61810], cl
and al, 0x1f
add byte [eax - 0x24], ch
jl 0x47f883
push 0x1e97cdc
movsb byte es:[edi], byte [esi]
mov al, 0x49
sti
and al, 8
add dword [eax + esi*4 + 0x824fb49], esp
jne 0x47f917
punpckhdq mm0, qword [edx]
push 0xe8e8e856
push esi
lea esp, [eax + eax*2]
and al, 0x40
mov eax, edx
jmp 0x47f8c0
call 0x45eea9
dec esp
pushal
adc byte [ebp + ebx*2 + 0x5b], bl
sbb dword [eax + edi*2], 0x51
inc ebp
mov word [esp + edx], fs
add bh, byte [eax + edx*2 + 0x4c]
and al, 0x10
cmp al, 0xe8
adc cl, bl
clc
sub ebx, 0x20
cmp dword [esp + 0x5c], 0x52830400
jne 0x8bcafe51
push eax
call 0x9d43560e
add al, byte [eax]
sbb byte [eax], bl
test byte [edi], cl
test byte [eax + edx*2 - 0x747cfb], al
inc ebp
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 0x57]
mov eax, dword [edx + 4]
and byte [esi - 0x7d], 0x78
or byte [esi + 0xf], cl
test dword [ebx + eax*4 - 0x2400ccf4], esp
wait
add byte [edi - 0x75], dl
jl 0x47f8ad
xor edi, edi
fistp dword [ebx + 0x7c8b5700]
invalid
inc dword [ebp - 0x75]
inc ebp
jl 0x47f8b1
inc eax
add al, 0x8b
dec ecx
adc al, 0x81
movsx eax, word [edx + 0xa]
add dword [edx + 0x4c], ebp
and al, 0x10
and al, 0x51
inc ebp
mov word [eax + ecx], fs
dec esp
and al, 0x52
push ebp
push edi
add byte [esp + ebx + 0x24], al
call 0x8640ab61
ror byte [edi], 0xf
test dword [esp + eax + 0x56], ecx
call 0x20800dfb
call 0x8640c771
ror byte [edi], 0xf
mov cs, word [edi + 4]
add byte [ebx + 0x408b7c45], cl
push edi
mov eax, dword [edx + 0xc]
and byte [esi - 0x7d], 0x79
or byte [edi + 0xf], cl
test dword [edi + 4], ecx
add byte [ebx + 0x3814a640], cl
and byte [ecx - 0x1117ffbb], cl
int 0xf8
call [ebp + edx*2]
mov dword [esp + ebx*4 + 0x78], eax
inc edi
add al, 0x8b
add byte [eax + edx*4], cl
inc ebx
cmp word [ecx + 8], 0x4e
pop esp
add al, 0x20
jo 0x47fa0f
test byte [ebx - 0x73f0fe05], al
sub al, 4
and al, 0x52
or byte [ecx - 0x17a9e7f0], cl
add eax, 0x2404c36
jne 0x7cd3a83a
push 4
push ebx
push esi
call fcn.004354ee
ret
invalid
or dword [ebx - 0x74efcfdc], 0x74
test byte [eax + 0x4c], bh
mov edx, dword [eax]
and al, ch
loopne 0x47f9f5
clc
inc eax
add cl, byte [edi]
test dword [esp + edi*4 + 0x4c8b8b03], eax
and al, 0x28
adc byte [eax + 0x3b], al
ret
and al, 0x52
push 1
dec esp
and al, 0x6c
jl 0x47fc8a
insb byte es:[edi], dx
push ebp
push edi
call 0x6160f53a
jle 0x47fc46
je 0x526c4871
and al, 0x52
jmp 0x50c48823
mov ebx, dword [ebx]
movzx eax, word [ebx + 8]
cmp ax, 0x7f
je 0x47fcf6
cmp ax, 0x4e
je 0x47fcd9
cmp ax, 0x47
clc
inc edi
je 0x47fcd9
cmp ax, 0x4f
je 0x47fcd3
cmp ax, 0x48
je 0x47fcd3
cmp ax, 0x40
jne 0x47fca7
jl 0x47fcc6
adc al, 0x10
add byte [edi + ecx*2 + 0x66], dh
cmp eax, 0x33
cmp ax, 0x33
jne 0x47fcdd
mov esi, dword [ebx]
inc ebp
and al, 0xc
xor al, 0xe8
pop ecx
loopne 0x47fcaf
or al, 0x34
call 0x4140dd11
inc eax
add cl, byte [edi]
je 0x47fcdd
movsx edx, word [ebx + 0xa]
mov eax, dword [esp + 0x52244c00]
push edx
push edx
push 0x6a7c8bb1
push eax
jmp 0x47fd6c
dec dword [esp + 0x10]
jmp 0x47fcdd
inc dword [esp + eax*2 + 0x10]
cmc
inc esp
and al, 0x44
mov esp, dword [eax + edx]
dec eax
inc eax
add ebx, 4
add al, byte [esp + eax + 0x44]
add ah, byte [eax + edx]
dec eax
cmp eax, dword [edi + 8]
jb 0x47fc76
mov esi, dword [esp + 0x52244c00]
push 0x6c
push eax
pushal
adc byte [eax - 0x18], dl
push ebp
push edi
mov ecx, esi
call 0x8640ab61
ror byte [edi], 0xf
test dword [ebx], ebp
add dword [0x14245c83], edx
sbb byte [eax], al
les eax, [eax]
push ecx
call fcn.00409221
inc ebp
jl 0x47fcb1
inc eax
push edi
mov eax, dword [edx + 0xc]
or byte [edi], 0xb7
dec ecx
or byte [esi - 0x7d], ah
stc
jg 0x47fd44
test byte [edi], dh
sbb al, 0x8b
push 0x66
cmp ecx, 0x40
jne 0xe89dfe4a
inc eax
mov dword [ebp], eax
inc edi
add al, 0x8b
add byte [ebp], dl
inc edi
or al, 0x90
cmp word [ecx + 8], 0x33
je 0x47f7a3
pop esp
push ebp
add byte [edi + 4], al
mov eax, dword [eax]
or al, 0x90
movsx edx, word [ecx + 0xa]
mov dword [esp + 0x52244c00], eax
add byte [esp + 0x52], cl
push edx
push 0x7f
push eax
jmp 0xe8c4896c