Function at 0x474d8a
Capabilities:
Encode data using xor

Disassembly:
clc
test bl, ch
cmp byte [edi - 1], 0
jmp 0x46f0cb
cmp ecx, dword [eax + 0x74ff240c]
and al, 4
invalid
push ecx
imul ebx, edx, 0xb0b887aa
inc ecx
push esp
cwde
inc esi
stosd dword es:[edi], eax
ror dword [eax], 1
fsubr st(2)
mov dword [0x17805b77], ecx
and byte [eax + edx*8], dl
out dx, eax
loop 0x46f0c1
and eax, 0x35adecf9
mov ah, 0x4c
push ecx
dec edi
enter 0xffffffffffffb91d, 0x44
les esi, [ebx + 0x55158ea8]
ja 0x46f059
sbb eax, 0xb3c444b9
test al, 0x8e
adc eax, 0x648d7755
and al, 0x20
lea esp, [esp + 0x20]
and al, 0x20
jne 0x472329
bsr di, cx
mov edi, dword [edx + 0x24]
call fcn.0047387a
je 0x46f09b
aad 0x40
cmp eax, 0xdd59023e
in al, dx
cmp eax, edx
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
mov ds, word [esi + 1]
jmp 0x46f083
push 0xf92532bb
movzx si, dl
mov esi, dword [ebp + 0xc]
lea esp, [esp + 0x24]
jl 0x474733
push 0xacf71800
pushal
mov dword [esp + 0x20], eax
mov byte [esp], ah
sete al
pushal
lodsb al, byte [esi]
push 0x58cf4816
jmp fcn.004756ec
pushal
pushal
cmp si, 0x8de5
cmc
cmp ecx, dword [ebp - 8]
push 0x6bcffc10
pushfd
lea esp, [esp + 0x48]
jbe 0x46f958
push 0xbf865463
xadd edi, esi
cmc
xchg edi, esi
sub ecx, 1
test dl, cl
bts di, bp
mov dword [ebp - 4], ecx
sub esp, 0xfffffffc
rcl cl, 1
sbb cx, ax
mov ecx, dword [ebp - 8]
inc di
xchg si, di
xor si, sp
pushal
add ecx, dword [ebp - 4]
xchg si, di
rol si, cl
bts di, si
shr ecx, 1
sar esi, 0x19
sal edi, cl
mov edi, dword [ebx + ecx*4]
not esi
bsr si, cx
movsx esi, cl
cmp bx, 0xe3a7
add edi, eax
jmp 0x472319
pushfd
call fcn.0049f927
fldenv [edi - 1]
mov dl, 0x73
int1
jbe fcn.004746dc
push eax
push es
fcmovu st(0), st(3)
stosb byte es:[edi], al
mov ebx, 0xbd05a547
std
sbb al, 0xd1
std
pop ds
fadd dword [ebx + 0x92ada7]
arpl word [edi], ax
cwde
jmp 0x47478d
out 0xa7, al
pop edx
xchg edx, eax
jmp 0x10f80647
cdq
inc ecx
mov al, byte [0xecedbd3]
inc edi
or al, 0xe2
and eax, 0x5171418c
pop ds
bound edx, qword [ebx - 0x4ca5d28e]
rol dword [ebp + edi*2 + 0x4f875efb], 1
inc ebx
fstp qword [edi]
pop ds
jmp 0x474815
jle 0x474833
mov bl, 0xa8
mov al, 0x6e
xchg byte [ebp - 0x2a], cl
salc
push esi
jae 0x4747b2
mov edx, 0x7e164651
add bh, byte [esi - 0x58b56046]
push ds
daa
xlatb
je 0x474775
stosd dword es:[edi], eax
lcall 0xd8ae, 0xe95bab24
adc al, 0x2c
pop ebx
sub al, 0x5b
adc al, 0x28
in al, 0xb5
sub byte [ebx], dl
fiadd word [ecx + 0xc23cb07]
lodsb al, byte [esi]
adc cl, 0xdf
sbb edx, esi
invalid
rcr bl, 1
mov ebp, 0x2b1b748d
or esp, dword [ecx]
jns 0x4747ac
push ebx
leave
leave
jno 0x4747d8
and byte [eax + 0x39c98748], cl
jle 0x474890
loopne 0x4747bb
pop ebp
adc ecx, dword [eax + 0x49]
mov esi, 0x96a1f293
pop esi
mov dl, 0x1b
div dword [edx + 0x71]
jge 0x4748a3
dec ebx
pop edi
out dx, al
rcl byte ds:[bx + di]
xor dword [ebp - 0x2e], ebx
test al, 0x84
enter 0x251f, 0x4a
sub eax, 0x84840473
ret 0x5639
clc
invalid
mov word [esp], 0x10de
pushal
lea esp, [esp + 0x30]
jmp 0x472f85
cmp al, byte [edi]
pop eax
not al
lea eax, [ebp + 0x7fa516c0]
lea edi, [edi + 1]
not al
pushfd
mov eax, dword [esp + 0x48]
jmp 0x49f2a1
push dword [esp]
mov byte [esp + 4], al
lea esp, [esp + 0x50]
ja 0x475108
pushal
pushfd
pushal
lea esp, [esp + 0x44]
jb 0x473e6b
pushal
jmp 0x46dcc1