Function at 0x401690
Capabilities:
Encode data using xor

Disassembly:
outsb dx, byte [esi]
sub al, 0x1c
stosd dword es:[edi], eax
xor eax, 0xd6f35808
xlatb
sahf
inc edx
fdivr qword [edx + edi*8 + 0x510a704d]
xchg edx, eax
scasd eax, dword es:[edi]
push es
push edx
mov dword [eax], edi
mov byte [0xc4d3a9c4], dl
cmp eax, 0x1a42d421
mov ebx, 0xe1123b3f
xor eax, 0xd589a4c1
mov ebx, 0xdaa5d276
lock adc ch, byte [ecx + ebx*2 + 0xded8046]
adc dword [eax], eax
mov bh, 0xee
bound edx, qword cs:[edx + 0x57]
in eax, dx
jno 0x401722
js 0x40171a
inc ecx
js 0x4016fa
cmp eax, edx
iretd
xchg ebp, eax
sal byte [edi - 0x43d625ea], cl
xor bl, byte [eax]
or dh, byte [ecx]
push esp
mov bh, 0x73
enter 0xffffffffffffcd7e, 0xffffffffffffffb6
jg 0x401761
int3
cwde
inc eax
cmp byte [edx + ecx*4], 0x54
out dx, eax
shr ch, cl
in eax, dx
sbb al, 0x11
bound esp, qword [edx]
xchg esi, eax
and eax, 0xc2144dba
cld
jae 0x40174c
add al, 0x83
inc ecx
push esp
mov ch, 0x2a
dec edx
push bp
ret 0xd07a
adc al, 0xd7
mov bl, 0x36
jne 0x40176e
cmpsb byte [esi], byte es:[edi]
jp 0x4017c5
stosd dword es:[edi], eax
cmpsb byte [esi], byte es:[edi]
nop
adc eax, 0x8eb68a49
mov dh, 0x8e
add eax, 0xd98aff70
push edi
or byte [ebx + 0x58], ch
fst dword [edi + 8]
imul ebx, dword [eax + 0x4c], 0xffffff8b
pop edx
fidiv word [ebx]
mov dword [0x504b6f74], eax
dec esp
mov ebx, dword [edx - 0x22]
xor esp, dword [ebx + 0x504b6f74]
dec ebx
push eax
pop edi
mov esi, 0xe885222c
ja 0x40175b
sub eax, 0xb802d708
cmp al, 0xf7
movsb byte es:[edi], byte [esi]
mov ebx, dword [edi - 0x4edf3a35]
or byte [edi], ch
push 0xffffffffffffff96
and al, 0xd9
or bl, byte [esi + 0x64]
pop eax
and byte [edi + 4], dh
pushfd
dec esi
stosd dword es:[edi], eax
dec esp
and dl, 0x9a
sub bl, byte [edi - 0x6a]
cwde
sti
cmp edi, ebp
adc ebp, eax
aad 0xfe
cdq
jbe 0x4017f4
mov ch, 0x7d
sub dl, byte [edi + 0x34a5c2dd]
lahf
add al, 0xab
invalid
and al, 0xf1
or dword [edx + 0x67], edi
jno 0x401766
push ds
xor dword [eax + ecx*4 + 0x53], eax
push 0x65
stc
cwde
wait
cld
cmp eax, dword [edx + eax*4]
add al, 0xa6
fadd dword [ebp - 0x5c8bd9cf]
jp 0x4017f4
pushal
loop 0x401828
inc ecx
xchg dword [eax - 0x1fe35fc5], esi
dec edx
pop esp
or dword [esi], ebx
nop
mov dword [edi - 0x6ac8089a], edi
cdq
stosb byte es:[edi], al
lahf
inc esi
cmp dh, byte [ebp - 0x14]
movsd dword es:[edi], dword [esi]
mov ah, 0x25
mov bh, 0x16
push edx
adc al, 0xa1
push eax
insb byte es:[edi], dx
mov dl, 0xd1
jns 0x4017c5
adc dword [eax + 0x2e], eax
mov ebp, 0xf80a922c
or bh, al
xchg byte [edi], ch
invalid
cmp ebx, dword [ebx - 0x2b]
add eax, 0xa3d8a2b2
pause
nop
jno 0x401817
cwde
sbb dword [ecx + 0x3297978], esp
push 0xffffffffffffffcb
aas
inc edi
cmp ah, byte [ebx - 0x2b83d542]
mov edi, 0xea978253
xlatb
out dx, al
push es
faddp st(4)
in eax, 0xd2
scasd eax, dword es:[edi]
jp 0x40185d
inc ebp
pop ebx
test al, 0x1a
cwde
add dl, byte [edi - 0x5d7c8e43]
sbb dword [ecx + edi*2], esi
add ebx, eax
and dword [edx + 0x3793419], 0xffffffd8
inc edx
pop esi
and al, 0x61
std
stc
mov esp, dword [eax + 0x66adc7a0]
add al, 0x35
rcr dword [edx + ebx*8], cl
xlatb
xchg dword [edi], esi
jns 0x401831
add dl, ah
xlatb
int 0xb
push esp
push edi
sbb al, 0x9e
aam 0x6a
mov al, 0x98
dec ecx
xchg byte [edx + ebx*2 - 0x6d], bh
cmp al, 0xae
scasd eax, dword es:[edi]
lds ebx, [esi]
cwde
push ecx
mov al, 0x71
scasd eax, dword es:[edi]
sbb bh, bl
jle 0x4018e6
sub byte [edx], cl
lds eax, [eax - 0x1e613b49]
adc dl, byte [edi + 0x52bfcf59]
xor bh, byte [edx - 0x10d5e324]
wait
jne 0x4018f0
mov bh, 0xba
xchg ebx, eax
adc dword [esi + 0x4e], edx
lcall 0x1c69, 0x7c75cdf9
scasd eax, dword es:[edi]
push edi
mov ecx, esp
push eax
push es
fcom qword [ecx - 0x34]
push ecx
lea eax, [edx]
inc edx
lds edi, [ebx - 0x62]
push cs
pop esi
mov bl, 4
nop
stc
or edi, dword [ebp + 0x22965dcb]
ja 0x4018cf
xchg bl, cl
sal byte [ebx], 1
jno 0x4018b5
scasd eax, dword es:[edi]
jge 0x40192f
ret
jl 0x4018b3
or dword [ebx - 0x77518d5c], ecx
or dword [edx + 0x75], ebx
mov eax, dword [0x6ed25e84]
or esi, dword [edx + 3]
mov edi, 0xb94aba3b
and al, 0xf8
and dl, byte [eax]
mov bh, 0x80
inc ebp
ret 0x697d
mov dh, 0x4d
push cs
xchg ebp, eax
mov eax, dword [0xc25771fb]
movsb byte es:[edi], byte [esi]
or dword [edx + ebp*2 - 0x1fea0001], edx
xor byte [eax], al
ret