Function at 0x18a0304
Capabilities:
Encode data using xor

Disassembly:
jmp 0x18a030e
pushal
call 0x18a0314
pop ebp
sub ebp, 0x10
sub ebp, 0x14a0304
jmp 0x18a032a
mov eax, 0x14a0304
add eax, ebp
add eax, 0x4c
mov ecx, 0x608
mov edx, 0x59af671f
xor byte [eax], dl
inc eax
dec ecx
jne 0x18a0341
jmp 0x18a0354
xchg esp, eax
rcl byte [esi + edx*4 + 0x1f1f1f23], cl
sahf
fsubrp st(7)
pop ds
pop ds
pop ds
sbb al, 0xd2
cmpsd dword [esi], dword es:[edi]
adc ebx, dword [edi]
pop ds
pop ds
movsd dword es:[edi], dword [esi]
aaa
pop ds
pop ds
pop ds
call 0x96612070
sahf
adc ebx, dword [edi]
pop ds
pop ds
sbb al, 0xda
xchg edx, eax
jnp 0x18a03b8
jecxz 0x18a0315
sbb edi, dword [ebx]
dec edi
ja 0x18a035f
mov al, 0x11
pop ds
ja 0x18a03e8
dec esp
and al, 0x1e
push ds
xor edi, dword [ebx]
ja 0x18a03ee
inc ecx
invalid
pop ds
pop ds
pop ds
fdivrp st(6)
sbb eax, 0xdd9c1d2e
sbb edx, dword [esi + 0x10]
lcall 0x3394, 0xe0e0e0eb
cmp edx, dword [edx - 0x22e4c485]
adc ebx, dword [edi]
xchg esp, eax
xchg ebx, eax
cmp ebx, dword [ebx]
pop ds
pop ds
pop ds
ja 0x18a03b6
mov al, 0x11
pop ds
ja 0x18a043f
dec esp
and al, 0x1e
push ds
xor edi, dword [ebx]
xchg edx, eax
jnp 0x18a0424
cmp esp, ebx
xchg esi, eax
jecxz 0x18a0381
adc edi, dword [ebx]
neg dword [edx]
pop ds
sbb bl, byte [edi]
pop ds
pop ds
test byte [esi + 0x1d], 0x1f
pop ds
xchg edx, eax
jnp 0x18a0435
dec esi
sbb eax, 0x7b921f1f
cmp esp, ebx
xchg esi, eax
jecxz 0x18a0392
xor edi, dword [ebx]
dec ebx
inc edx
loopne 0x18a046c
adc esp, eax
push 0x17
mul dword [ecx + 0x1f]
pop ds
pop ds
xchg esp, eax
mov byte [0x1f1f1f17], al
sahf
out dx, al
neg dword [esi - 0x116102f5]
neg dword [esi - 0x29d302f5]
sahf
in eax, dx
fld dword [ebp + ebx*2 - 0x26126166]
test byte [ebp - 0x66], bl
lcall 0x9a5d, 0x84d9ed9e
sub al, 0xcd
pushfd
neg dword [edx]
push edi
adc byte [ebx + 0x1f1f1f51], bl
pop ds
pop ds
adc byte [edi + 0x1f1f1f57], dl
jns 0x18a03d3
add esp, dword [esi]
lahf
in al, 0xf7
not dword [eax]
wait
add eax, 0x9f1f1f1f
adc byte [ebx + 0x1f1f1f05], bl
lahf
in al, 0xf6
adc byte [ebx + 0x1f1f1f0e], bl
jns 0x18a03f3
in al, 0xe0
cmp dl, byte [eax]
wait
or bl, byte [edi]
pop ds
pop ds
pop esi
not bl
loopne 0x18a0443
loopne 0x18a049b
push ebx
push ds
pushfd
ficomp word [edx]
pushfd
neg dword [ebx]
mul byte [edx + 0x36e0e0e0]
dec ebx
sbb eax, 0x9c19de9c
cmc
sbb ebx, dword [edi + esi*8 - 0x1f4b09e6]
loopne 0x18a0465
inc edx
fst qword [ebx]
pop ds
dec edx
xchg esp, eax
dec ecx
dec eax
dec edx
xchg esp, eax
push 0x13
xchg esp, eax
bound edx, qword [edi]
jecxz 0x18a0444
lahf
xchg ebp, eax
sbb dword [esi + 0x1f1f1ed9], ebx
fstp dword [esi]
pop ds
pop ds
pop ds
xchg edi, eax
sbb byte [esi + 0x1f1f1ed8], bl
pop ds
movsb byte es:[edi], byte [esi]
sbb eax, 0x1d1f1f1f
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0xc79c10cd
loopne 0x18a049f
loopne 0x18a04de
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0x759c10cd
pop ds
pop ds
pop ds
sub al, 0xdf
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0x10
pushfd
xor eax, 0x1d1f1f1e
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0x1ddf0ccd
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0x1ddf0ccd
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0x1ddf0ccd
int 0x10
lcall 0x995, 0x1f1f1f1a
pop ecx
or eax, 0x10df0ccd
push ds
pop ds
pop ds
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
fistp word [0x1a9a10cd]
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
fistp word [0x1a9a10cd]
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
fistp word [0x1a9a10cd]
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
fist word [eax]
wait
sbb dword [edi], ebx
pop ds
pop ds
xchg esp, eax
sal byte [edi + eax*8], 0x95
sbb al, 0x97
sbb byte [eax - 0x5c], bl
sbb eax, 0xf61f1f1f
outsd dx, dword [esi]
loopne 0x18a051c
loopne 0x18a04e5
push ds
pop ds
pop ds
pop ds
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
fistp word [0x1a9a10cd]
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0x10
popfd
shl eax, 0xe0
loopne 0x18a0599
fsub qword [esi + ebx + 0x101f1f1f]
lcall 0x1ea6, 0x1f1f1f2b
pop ds
pop ds
pop ds
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
salc
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0x10
popfd
shl eax, 0xe0
loopne 0x18a05e2
xchg esp, eax
call 0xbd76efd3
inc ecx
not byte [edi]
loopne 0x18a0584
loopne 0x18a05fd
fdivp st(7)
pop ss
xchg ebp, eax
sbb dword [ecx - 0x6c], ebx
mul dword [esi + 0x1f1f1f1e]
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0xc
salc
sbb eax, 0x1a9a10cd
pop ds
pop ds
pop ds
xchg ebp, eax
or dword [ecx + 0xd], ebx
int 0x10
popfd
shl eax, 0xe0
loopne 0x18a0574
out 0x1f, eax
bound ebx, qword [edi]
pop ds
sahf
invalid
out 0x1f, eax
sbb bl, byte [edi]
pop ds
sahf
invalid
pop ds
pop ds
sahf
into
pop ds
pop ds
pop ds
pop ds
dec ecx
xchg esp, eax
call 0xbd76f540
inc ecx
test byte [ecx + 0x1995e0e0], 0x59
sub al, 0xd6
fcompi st(7)
push ds
adc byte [ebx + 0x1f1f1f05], bl
sahf
into
sbb eax, 0x941f1f1f
test dword [ecx - 0x6c], 0xecef34e8
mov ebx, 0x1f1ea441
pop ds
pop ds
imul byte [ecx - 0x20]
loopne 0x18a067d
xor al, 0x62
pop ss
xchg esp, eax
fadd dword [eax + 0x41]
xchg esp, eax
cli
inc edx
fst qword [edi]
pop ds
xchg esp, eax
and edi, dword [ebx]
xchg edx, eax
jnp 0x18a0689
sbb eax, dword [ecx - 0xa]
sbb ebx, dword [edi]
pop ds
pop ds
cmp ebx, ebx
push ds
xor ah, byte [edi + 0x1e551c1b]
sbb al, 0xda
sahf
fbld tbyte [esp + ebx + 0x1f]
pop ds
cmpsb byte [esi], byte es:[edi]
invalid
pop ds
pop ds
or byte [ebx], bh
scasd eax, dword es:[edi]
call 0x3dd63bd3
inc eax
mov esp, 0x403c4cf7
test dword [esp + edi + 0x40], 0xcb6bfc77
retf
cmp al, 0x40
ja 0x18a068b
imul ecx, ebx, 0xffffffcb
retf