Function at 0x1559136
Capabilities:
Encode data using xor

Disassembly:
pushfd
test edi, edi
jmp fcn.015436c3
push esi
mov al, byte [0x688a8a78]
push cs
outsb dx, byte [esi]
or al, 0x70
in al, 0x32
or ah, al
sub ah, byte [esi - 0x42f6bcf2]
out dx, eax
add eax, 0xff1bd0f
mov dh, 0xf2
bsr esi, ecx
movzx esi, dl
add edi, eax
bswap si
mov esi, dword [ebp + 0xc]
call fcn.01268087
sti
and ecx, dword [eax + 0x37d9453e]
jno 0x1547dcc
mov dword cs:[0xfd6ebf82], eax
xchg edi, eax
adc byte [esi], bh
push ecx
xor dword [eax + 0x664fa946], edi
adc ecx, esi
test eax, esp
int 0xdf
invalid
bt eax, edi
mov edi, dword [edi + ecx*4]
pushal
bt dx, 5
jmp 0x1547c60
mov di, cx
bt cx, 0xf
mov edi, dword [edx + 0x1c]
pushal
add edi, eax
jmp 0x1548593
cmp bp, sp
sub ecx, dword [edx + 0x10]
cmp ch, 0x3c
cmp ecx, dword [edx + 0x14]
pushal
lea esp, [esp + 0x20]
jae 0x154d20c
pushal
pushal
pushfd
mov byte [esp + 4], 0x42
lea esp, [esp + 0x44]
jmp 0x154948d
test ax, bp
pushal
cmp eax, dword [ebp - 0x10]
pushal
lea esp, [esp + 0x40]
jae 0x154d215
movzx bx, dl
xchg di, cx
bts ebx, 0x1a
add ch, dh
mov ebx, eax
rcr cx, 9
clc
cmp dl, 0x4a
neg edi
mov edi, eax
movzx cx, al
push 0xb9823e6
mov ecx, 0x104
call fcn.015582e6
jbe 0x1549660
sal di, cl
mov edi, dword [edx + 0x24]
shl cl, 1
or bl, 0x57
inc cx
add bh, 0xda
add edi, eax
neg cx
inc cx
mov ebx, dword [edx + 0x20]
setb ch
push ebx
pop ecx
add ebx, eax
movzx ecx, cl
mov dword [ebp - 8], 0
add cl, 0x33
mov ecx, dword [edx + 0x18]
pushfd
cmp ecx, dword [ebp - 8]
jmp 0x1554321
cmp eax, edx
push 0x9baf4ec5
lea esp, [esp + 0x28]
jb 0x154d215
stc
cmc
jne 0x154c623
cmp eax, dword [ebp - 0x10]
call fcn.01544855
sbb dl, ah
push 0xd3abddac
xchg ebp, eax
pushal
sub bh, byte es:[edx - 0x67]
dec edx
loope 0x154ce84
and byte [ecx + 0x42], dl
jo 0x154cf5f
pop ss
pop eax
lds edx, [edx + 0x4c]
stosd dword es:[edi], eax
mov dword [ebx - 0x44c3bd17], esi
dec ecx
scasb al, byte es:[edi]
cmp byte [ebx - 0x27], dl
sub eax, 0xb3700bf9
inc ebp
or bh, dh
mov ecx, dword [edi - 0x624f3735]
pop ebx
mov ebx, 0x7bb9a0c0
hlt
add eax, 0x10f85f19
imul edx, ecx, 0x95de7e31
in eax, dx
sbb al, 0xd9
and byte [eax - 0xe], al
jno 0x154cef7
lodsb al, byte [esi]
sub edi, edi
mov al, 0x64
xlatb
lcall 0xd3bf, 0xd30250e9
iretd
fstp qword [ebx]
cmpsd dword [esi], dword es:[edi]
xor ebp, dword [eax]
add byte [edi + edx], 0x3d
mov esi, 0x9a808062
cwde
je 0x154cf85
jbe 0x154cf35
push esp
cmp byte [esi - 0x2e], bl
sub al, 0x63
stosd dword es:[edi], eax
dec ebx
xchg dword [ebx], eax
loope 0x154cf40
jmp 0x154cfb7
xchg dword [edi + 0x28], esp
xchg esi, eax
sal edi, 0xd5
jmp 0x8d06cdb1
sub byte [esi - 0x162a083f], dl
and bh, dh
mov cl, 0x8b
in al, dx
jo 0x154cf83
mov ebx, dword [ebp + 0x49274fc3]
xor dword [edi - 3], edx
or eax, 0xa951fb31
imul eax, dword [edi - 0x6af159e0], 0x4db727ed
xchg edx, eax
int3
jbe 0x154cfc5
or al, 0xb0
shl dword [edi + 0x79b3de54], cl
cld
lcall 0x8fdf, 0x549683f9
push ds
sbb ebx, dword ss:[ebx - 5]
mov al, 0xd3
cmpsd dword [esi], dword es:[edi]
push esp
fidiv word [ebx - 0x6650387]
adc dword [esi + 0x1e8fdf54], 0x36
sbb ebx, dword [ebx - 5]
push esp
fisttp word [edi + 0x5b1b361e]
sti
xor dword [edx - 0x4b3151a6], ecx
jo 0x154cfb8
mov ecx, ebp
mov eax, dword [0xa42ac799]
movsd dword es:[edi], dword [esi]
inc ebx
xchg eax, eax
pop eax
jmp dword [esi - 0x251e81bd]
pushal
jmp 0x154cec6
lea esp, [esp + 4]
jbe 0x154d20c
sal di, cl
stc
sub ecx, 1
or si, cx
bsr si, di
not di
cmp bl, 0x65
mov dword [ebp - 4], ecx
test dl, al
and cl, bh
inc cx
dec di
mov ecx, dword [ebp - 8]
xchg si, di
btc si, sp
inc si
adc di, si
add ecx, dword [ebp - 4]
movzx edi, dl
shr di, 0xa
dec si
shr ecx, 1
ror edi, 4
adc di, 0x7cb6
lea esi, [ebx + 0x66657e8b]
mov edi, dword [ebx + ecx*4]
jmp 0x1547de2
test al, al
mov edi, dword [edi + ecx*4]
stc
mov word [esp], 0xdbbb
cmc
pushfd
test edi, edi
mov word [esp], 0xa8ab
push dword [esp]
pushal
lea esp, [esp + 0x34]
je 0x154d20c
clc
pushfd
clc
add eax, edi
test ch, 0xdf
jmp 0x1551abf