Function at 0x5811c8
Capabilities:
Encode data using xor

Disassembly:
in al, 0xdd
fsubr qword [edi]
popfd
sti
dec esp
shl byte [edi + 0x10], 0x29
pop eax
mov bl, 0x73
jnp 0x58115e
les ebp, [ebx + eax*2 - 0x333adbc9]
pop edx
xor dh, dl
inc esp
mov eax, 0xe8eb76d6
call 0xab514716
fiadd dword [eax]
mov byte [eax + 0x4c], ch
das
cwde
out dx, eax
movsd dword es:[edi], dword [esi]
mov ah, al
pop edx
salc
xor byte [edx + 0x9260daa], ch
wait
sub cl, cl
inc ebx
jo 0x5811eb
and eax, 0x585b176a
add dword [eax + esi + 0x39], 0x6f3416ba
xor eax, 0xcfd8a845
pushfd
fsubr dword [ebx + 0xc]
jg 0x581241
sub esp, dword [edi]
dec edi
dec eax
or byte [ebp - 0x3eb717f5], bl
dec eax
jo 0x58125e
add eax, 0x2f7438a5
adc byte [eax + 0x70bcf327], ch
push eax
push esp
outsb dx, byte [esi]
movsd dword es:[edi], dword [esi]
cmp byte [edi + ebp + 0x10], dh
test al, 0x27
mov esp, 0x6e545070
or dword [ebx - 0x13a797f1], esi
fcmovnbe st(0), st(6)
cmc
cli
pop eax
push esi
jecxz 0x581276
das
fldcw word [edi + 0x4a]
inc esp
or word [eax], bx
xchg dword [ecx], ebx
loopne 0x581210
inc esp
sub al, 0xa8
jge 0x5812d0
jle 0x58122b
sbb dword [esp + edx*2], 0x8b99e44
outsb dx, byte [esi]
scasd eax, dword es:[edi]
out dx, eax
mov ecx, 0xefaf6e08
jns 0x581290
sbb al, 0xa4
inc eax
enter 0x168, 0xfffffffffffffff2
push 8
push esi
loopne 0x581242
mov al, byte [0x1fbb948]
push 0xb4f80d9c
xor byte [ecx - 0x16], ch
and byte [0x48c840bf], dl
das
cmpsd dword [esi], dword es:[edi]
retf 0x984b
dec ebp
xor esp, dword [0x6af7eab6]
frstor dword [ebx - 0x57577c4f]
cdq
sahf
push 0x6bccf1dc
call 0x89d8fb59
or edx, dword [esi + ecx]
cld
cmp ch, byte [edi - 0x778a8e37]
lahf
mov ebp, 0x17cf148c
jno 0x581327
mov byte [edi - 0x30eb7343], bl
pop ss
aam 0x99
clc
test al, 0x9d
sbb eax, dword [ebx + 0x59459048]
push ss
and byte [edx - 0x70], cl
push eax
cmp byte [0x2418866e], bl
or eax, 0x7080675c
pop ecx
dec ebx
pop esp
xor byte [bx + si + 0x59], 0x4b
jb 0x5812b0
test eax, 0x2820aaa8
ret 0x9328
mov al, byte [esi + edx*4 - 0x71]
sub byte [edi + 0x47385e24], dh
or edx, eax
enter 0x7079, 0xffffffffffffffe6
enter 0xffffffffffffd6e8, 0x59
shr byte [edx - 0x33f7d428], cl
stc
mov edi, 0xd0dc78ed
pop ecx
pop ebx
push ebp
lahf
idiv byte [eax + edi*8 + 0x7082fbd]
mov al, byte [0x35305c79]
adc byte [eax], bh
lcall 0x641a, 0x4091803b
sbb byte [ecx + ebp*8 + 0x6f], dh
xchg dword [eax], edx
add ebx, dword [0x543caa94]
rol byte [edi + 0x326c852a], 1
lds esi, [eax*2 - 0x6433afb9]
mov eax, 0xfd2ba802
sbb byte [eax + ebx*8], dl
nop
fdivr dword [0x4a664fb4]
sbb dword [ecx + 0x10d94bea], 0x57
insd dword es:[edi], dx
push ebp
test dword [ebx], 0xab1520c8
sbb al, byte [eax - 7]
out 0xb0, al
push eax
stosd dword es:[edi], eax
sbb byte [eax + 0x3152c84b], dh
rcl byte [edi - 0x713b82bc]
movsd dword es:[edi], dword [esi]
jp 0x581412
push 0x4d39d86e
inc ebp
je 0x581404
invalid
and byte [eax + 0x2b], bh
jnp 0x581463
loopne 0x581420
add byte [ecx + 0x59e021bf], bh
cld
bound ebx, qword [esi + 0x493edbea]
ret
xchg edx, eax
cli
fdiv qword [ebx + ebp*8]
push ebp
fistp word [edx - 0x37183572]
mov dl, 0x48
test al, 0xfd
nop
faddp st(4)
test eax, 0x290579ae
enter 0xffffffffffff92be, 0x3c
xchg ecx, eax
and byte [edi + 0x48ae77fd], bh
fdivr dword [eax + 0x33236ade]
pop edi
sbb esp, dword [ecx + 0x41308df9]
jge 0x58149a
cmpsb byte [esi], byte es:[edi]
movsb byte es:[edi], byte [esi]
imul byte [ebx - 0x6f]
clc
mov eax, 0xc7ebd52c
cli
add dh, 0x58
test al, 0xdc
adc al, 0x1d
pushal
mov al, 0x9c
cwde
fcom qword [ebx - 0x67634fa0]
jns 0x58148c
clc
inc ecx
lodsd eax, dword [esi]
fldcw word [eax]
std
sub ebp, eax
mov ch, 0xdd
popfd
enter 0xffffffffffffb80c, 0x68
dec ebx
fnstsw word [ebx + 0x30f9c891]
push edx
cwde
js 0x5814d1
mov word [edi - 0x71], gs
invalid
pop eax
pop ebx
aas
sbb byte [eax], al
out dx, eax
sub byte [edi], dl
hlt
mov bh, 0x48
out 0x5b, eax
push ebp
sbb ch, byte [eax - 0x48]
cdq
xchg bl, cl
sub ebx, dword [eax + 0x18]
test eax, 0x688783ba
cmp bh, cl
push ebx
dec eax
mov eax, 0xc1687edd
invalid
stc
aam 8
pop esp
enter 0x7e4c, 0xffffffffffffffe4
push 0x186
clc
and dl, byte [ecx + ebx*8 - 0x2f96df42]
push ds
pop eax
popal
cmp al, 0x3a
out 9, al
enter 0xffffffffffffae88, 1
dec ecx
adc byte [ebp + 0x68a44439], bl
adc esp, ebx
sbb eax, 0xa4b525c7
mov dh, 0xdf
fsub qword [edi + 0x5d030929]
jo 0x581586
jecxz 0x58148d
sub al, 0xc2
sbb eax, 0x9aaf6ca6
xor esp, dword [ebx + 0x19]
fldenv [esp + ecx*8 - 0x2c]
invalid
push es
stosd dword es:[edi], eax
adc al, 0x58
dec edx
or byte [esp + ebp*2 - 0x56], dh
sub al, 0x49
retf 0xeee0