Function at 0x596718
Capabilities:
Encode data using xor

Disassembly:
cmpsb byte [esi], byte es:[edi]
dec ecx
lodsd eax, dword [esi]
invalid
popal
or dword [eax - 0x13], eax
dec esi
out dx, al
or ecx, edx
add ecx, esi
std
jns 0x596769
mov esi, es
sahf
scasd eax, dword es:[edi]
fld xword [ecx + 0xa]
mov cl, 0xe9
sub dword [ecx + 0x58], edx
xchg ebx, eax
push esi
imul edx, dword [esp + 0x2a290b59], 0xffffffcd
jmp 0x1d6b5354
jl 0x5966d0
salc
pop ecx
popfd
ja 0x5967ca
push ecx
stc
test eax, 0xbd796be8
mov al, 0xe1
push edx
cwde
xor dword [ebx - 0x7b], edi
sub dword [edi], esi
or esp, dword [esp + ecx*8 - 0x527f287]
and bl, dh
mov bl, 0x99
loopne 0x59679b
lodsb al, byte [esi]
or eax, 0xba059931
in al, 0x4b
out 0x81, al
shr al, 0xfd
lodsd eax, dword [esi]
sub dword [ecx], ecx
push cs
das
xchg edx, eax
xchg ebp, eax
add dword [eax], edx
insb byte es:[edi], dx
dec edi
aam 0x6a
mov word [ebp - 0x4a], cs
xchg ecx, eax
sbb dword [esi], edi
in eax, dx
test eax, 0x3e4d1ac1
clc
jl 0x5967f7
cdq
les esi, [eax]
in eax, dx
cmp dword [eax - 0x72f781b4], esp
pop esp
xchg ebx, eax
frstor dword [ebp + 8]
mov fs, eax
cmp eax, 0x9dc26cf9
mov esp, 0x3c9e8b99
push es
cli
je 0x596745
lea ebx, [ebx + edx*4 - 0x23]
or byte gs:[esi + 0x6cf93de0], cl
ret 0xbc9d
dec ebp
enter 0xffffffffffffcf1b, 0x6c
mov ebp, 0x9919f93f
loopne 0x59674e
sbb al, 0xc6
invalid
invalid
mov bh, 0x3b
pushfd
jl 0x59681d
add ah, dh
xchg esi, eax
pop esp
jmp 0x2ea86047
out dx, eax
or dword [ecx + 0x210329c1], ebp
xor ebp, dword [edi - 0x6afe3660]
movsb byte es:[edi], byte [esi]
pop ecx
inc edi
outsd dx, dword [esi]
fidivr dword [edx - 0x4028a886]
mov cl, al
jbe 0x596893
sub dword [edi], edi
aad 0xf0
or dword [0xf1f83ff8], edx
ror dword [ebx - 0x37], 0xc0
dec ebx
clc
shr dword [edx + 0x67], 1
add cl, 0x9a
aad 0xad
fcomp st(5)
cmp ebx, dword [ecx]
pop ss
mov byte [0x83b39793], al
cdq
pop ss
add ecx, dword [ebx - 0x56f2641e]
call 0x2d4fc6fd
xchg esp, eax
xor esp, ebp
outsb dx, byte [esi]
cmp dword [ebp + 0x6c], ebx
test byte [ecx], ch
imul ebx, dword [esi - 0x4e88d36a], 0xffffffc0
dec byte [bp + si - 0x28]
test dword [ebp - 0x78], ecx
mov edx, 0x6dc87521
ljmp 0x8f6c
jmp 0x5968c8
mov al, 0x98
movsd dword es:[edi], dword [esi]
test eax, 0xb8a839af
push ds
imul edx, dword [edi], 0xd086ac6b
mov ebx, 0x29e79938
xor edi, dword [ecx]
push ebp
mov eax, dword [0xfec9f8cd]
jo 0x596964
pop esi
xchg esp, eax
and ah, 0xcc
les ebx, [ebx + 0x7b8feffc]
sbb ebx, ebp
mov ch, 0x70
mov cl, 0x88
or dword [ebx + 0x68], 0x910022d3
adc bh, byte [eax - 0x64]
in al, dx
mov cl, bl
call 0x1840ed4b
or byte [ecx - 0x471e9209], dl
leave
pop ebx
sar dword [edx - 0x28], cl
inc ecx
stosd dword es:[edi], eax
imul esi, dword [eax], 0xbc4a2585
sub dword [edx], ecx
sub ecx, ebx
cmp byte [esi], ch
xor al, 0xdb
je 0x5968f4
call 0x63175175
mov dword [esi + 0x496ff38e], esp
push 0x47
push cs
adc al, 0xa4
push edx
hlt
xchg edx, ebx
outsd dx, dword [esi]
popfd
jnp 0x5969ac
test esp, edi
pop ss
ljmp 0x8a6a
imul edx, dword [ebp + 0x5b2dc989], 0xffffffe2
stosd dword es:[edi], eax
dec esi
push ecx
or byte [esi + 0x74], ah
cmpsb byte [esi], byte es:[edi]
enter 0x6720, 0x78
sub al, 0xc
mov esi, 0x2a08ebdb
movsb byte es:[edi], byte [esi]
push ss
jp 0x596969
daa
sbb al, 0xcc
jle 0x596a06
mov edi, ss
sti
pop eax
stosb byte es:[edi], al
xor bh, byte [ecx + 0x51195920]
push cs
test eax, 0xcd473449
fincstp
invalid
pop eax
mov byte [esi - 0x47], ch
mov edx, 0x33c8f608
int1
pop ecx
test dword [ebx], 0xdc4f4c37
pop ecx
push ebx
xchg esp, edx
xor byte [ebx - 0x18], 0xcb
adc byte [ebx + edi + 0x71], dh
lodsb al, byte [esi]
cmpsd dword [esi], dword es:[edi]
sbb eax, 0x4d7c2791
jbe 0x596a8e
jae 0x5969f0
retf
invalid
push ecx
inc edi
dec ecx
pop eax
cmc
imul edi, dword [ebx + 0x4f], 0xa9b3f5e4
pop ebx
test eax, 0xc91183bf
iretd