Function at 0x438980
Capabilities:
Encode data using xor

Disassembly:
fimul word [edi + 0x4f]
dec esp
aam 0xb6
mov ebx, 0x6a3bd423
cmp byte [edx + 0x50], cl
mov ch, 0xb4
mov ch, 0x53
iretd
test byte [edi], ah
mov bl, 0x30
fsub dword [edx - 0x7b]
loope 0x4389ca
push ss
xor cl, byte [esi]
push ebp
jno 0x4389fe
invalid
jge 0x43890a
mov byte [eax - 0x78a724c2], ch
test al, 0x3e
fistp dword [eax - 0x79]
daa
cmpsd dword [esi], dword es:[edi]
xchg dword [edi + esi*4 + 0x328485fd], esp
fsub qword [ecx + 0x66]
adc byte [edi], bh
add eax, 0x6400172f
inc esp
sar esp, 1
loop 0x4389d2
in eax, 0xc
adc ebx, esp
cmp ah, dl
sub dword [ecx], esp
jnp 0x4389d9
sub al, 0x74
fcom dword [ecx + edx*8 + 0x4e]
jg 0x4389d6
sbb ebx, ebx
mov cl, 0xfc
movsd dword es:[edi], dword [esi]
retf
fst dword [esi + 0x3c]
adc eax, 0xbe0bbfae
push edx
rcl dword [ebx], cl
loope 0x4389df
mov esi, 0xe113d352
sbb ebp, dword [esp + esi*2 - 0xcf9f4c1]
lodsb al, byte [esi]
je 0x438a06
or eax, dword [esi]
rcl ecx, cl
rcl ecx, cl
jns 0x438a34
jl 0x4389be
aam 0xad
into
inc edx
pop esp
aam 0x88
hlt
mov ecx, gs
add byte [ebp + 0x79], al
xchg ebx, eax
jns 0x438972
mov ss, word [0xbd5982fc]
mov ss, word [ebx + 0x47]
or al, 0x31
les esp, [ebp - 0xe4b601c]
inc esi
arpl word [ecx], bx
push ecx
xor eax, 0x568b273a
add byte [0x14025ae6], 0x73
adc al, 0x73
mov dl, 0
xchg esp, eax
loope 0x4389dd
test edi, edx
xlatb
rol byte [eax + edx*8], cl
sbb al, 0xfc
arpl word [edx], bx
loope 0x4389b7
fsub qword [eax]
add al, 0x6e
mov dword [0xa4404114], eax
rcl dword [ebp + 0x15]
cld
loope 0x438a8a
cmp byte [edx - 0x53329bef], dl
mov edi, 0x54c795e6
outsb dx, byte [esi]
invalid
sub dword [esi], esp
int1
out dx, eax
xchg edx, eax
mov eax, dword [0xe175a58c]
cmp eax, 0x16848a43
loope 0x438a66
bound eax, qword [eax - 0x383f090c]
mul ch
mov dh, 0xb6
xlatb
mov bh, byte [ebp + edx - 0x27]
shr dword ss:[edi + ebp*4], 0x36
cdq
jecxz 0x438aa4
push eax
push ds
imul ebp, dword [ebp + 0x47], 0x8d01216c
outsb dx, byte [esi]
aaa
call 0x1f00e587
push ebx
jae 0x438a12
invalid
invalid
or eax, 0x9092e6f7
adc byte [eax], al
sbb dword [ebx - 0x64], 0x5ce91b11
aam 0xa8
jbe 0x438af5
xor byte [edx + 0x4990f557], 0x89
mov dword [ecx + esi*8], esp
and al, 0xf1
mov byte [0x24912bb1], al
and byte [esi + 0x11], dl
insd dword es:[edi], dx
loope 0x438add
add bl, cl
mov eax, dword [0xe4e72033]
push esp
daa
movsb byte es:[edi], byte [esi]
add al, 0x75
in eax, 0x39
jno 0x438b09
adc dword [eax - 0x1830d362], 0xd127e8db
xor ah, dh
les esi, [esi]
je 0x438b30
sbb dword [0xbc5436e4], ebp
enter 0x5c03, 0xffffffffffffffdc
insb byte es:[edi], dx
ljmp 0x9190:0x819b3c24
loop 0x438a8b
out 0x52, al
in al, 0xf7
rcl ecx, cl
jecxz 0x438aa3
mov eax, dword [0xe80a689b]
dec esp
shl esi, cl
add eax, 0x62819e41
pushal
mov eax, 0xd342808f
nop
and ch, byte [ebp - 0x6d]
in al, 0xa7
jecxz 0x438ae5
adc dword [ecx + edx + 0x3e], 0x870244fe
mov al, 0x17
stosd dword es:[edi], eax
and al, 0x32
push ebp
invalid
pop edx
xchg esi, eax
sbb al, 0x5a
xor eax, 0x4b812a3a
mov ds, ebx
mov edi, 0x40b92dac
sub byte [ecx - 0x62], cl
enter 0x10a5, 0x54
mov edi, 0x12da5ffd
xchg ecx, eax
js 0x438b6b
add eax, 0xd0f212
mov cl, ch
cmc
in al, dx
test dword [edx], ecx
mov edi, 0x2b364d0
rcr byte [eax + 0x6910bc70], 0x83
out 0xfe, eax
sbb dword [eax - 0x60286d40], esi
xchg edx, eax
xlatb
lahf
hlt