Function at 0x40d5c6
Capabilities:
Encode data using xor

Disassembly:
insd dword es:[edi], dx
dec ebx
aas
jbe 0x40d5b7
sbb cl, 0x62
fistp word [edx + 0x1d]
pop es
jg 0x40d5a8
mov dl, 6
loopne 0x40d5b7
jle 0x40d598
in eax, dx
pop ebx
add bl, byte es:[ecx - 0x38]
inc ebp
mov byte [0xd1692ce6], al
fisttp word [0xaf4009e6]
pop esp
push eax
push eax
or ecx, dword [ebx - 0x6a6719f3]
dec ecx
jg 0x40d535
dec eax
insd dword es:[edi], dx
and byte [edx + esi*2], dh
pop ss
jb 0x40d5c1
ror al, 1
invalid
push 0xffffffffffffffa1
xor al, 0xb1
mov ebx, 0x2f2fd29b
inc ebp
sub al, 0xaf
cmpsd dword [esi], dword es:[edi]
invalid
adc eax, 0xb1b76bc3
sub eax, 0x2f70bb70
inc edx
je 0x40d572
pop ss
mov dword ss:[ecx], esp
lcall 0x598d, 0x9913de7f
mov bl, 0xdf
je 0x40d63b
mov al, 0x40
scasb al, byte es:[edi]
out dx, al
hlt
loopne 0x40d68c
cld
mov al, 0xed
jo 0x40d61f
jo 0x40d681
xor dword [ecx + esi + 0x6c], ecx
jno 0x40d626
jb 0x40d60b
mov dl, 0xcf
mov dl, 0xee
out dx, al
jae 0x40d62b
jne 0x40d68c
dec edx
aaa
jns 0x40d62e
jns 0x40d610
in al, 0xba
invalid
mov edx, 0x7ce6bbc7
add dword [eax + 0x3d], edi
inc ebx
mov ebx, 0x7c017ce6
pushal
cmp eax, 0x7f623e43
add al, byte [eax - 0x13]
bound edi, qword ds:[edi + 2]
inc eax
in eax, dx
mov al, 0xcc
mov cl, 0xef
jb 0x40d651
jae 0x40d6b2
xor al, 0x49
xor al, 0x68
jne 0x40d655
push 0xea770b75
ja 0x40d636
mov eax, 0x7be7b9c4
add byte [esi + 0x62], bh
xor byte [ebp + 0x31], cl
outsd dx, dword [esi]
je 0x40d663
dec ebp
xor dword [edi + 0x74], ebp
or dword [ebp - 0x15], esi
jne 0x40d647
jmp 0x40d614
mov bh, 0xc5
mov ecx, 0x7d017be4
add dword [ebp + 0x63], edi
aas
arpl word [edi], di
inc edx
inc eax
insd dword es:[edi], dx
jo 0x40d676
or al, 0x72
out dx, eax
jb 0x40d65b
mov bl, 0xcb
mov dh, 0xea
jns 0x40d676
jl 0x40d6d4
sub eax, 0x9736d30
ja 0x40d661
xor byte [ebp + 0x73], ch
or dword [edi - 0x1b], esi
mov eax, 0x7ae7b9c4
pop es
jp 0x40d6ea
cmp eax, dword [ecx + 0x3d]
pushal
jle 0x40d68d
jg 0x40d669
mov al, 0xcc
mov cl, 0xef
jb 0x40d6a0
int3
je 0x40d6fd
xor al, 0x48
dec eax
xor eax, 0x770a766b
ljmp 0x37c
lds edi, [edx + 0x7f037ce6]
pop ebp
jl 0x40d6a5
jg 0x40d701
xor byte [edi + 0x32], cl
outsb dx, byte [esi]
jae 0x40d6b3
dec edi
xor ch, byte [esi + 0x73]
or dword [ecx + ebp*8 - 0x4b], esi
enter 0xffffffffffffeab7, 0x77
add eax, 0x463b6779
cmp esp, dword [esi + 0x7c]
add dword [ecx - 0x44], edi
je 0x40d695
mov ch, 0xc8
mov bh, 0xea
ja 0x40d6b7
jns 0x40d71b
cmp eax, dword [bp + 0x3b]
cmp eax, dword [esi + 0x3b]
jl 0x40d6bb
jl 0x40d69d
loope 0x40d679
mov esp, 0x7ee0bdc1
cmp eax, 0x4b346971
sar dword [ebp + 0x713d7ee0], 0x69
xor al, 0x4b
cmp byte [esi - 0x30], ah
or eax, 0xc5b7eb71
ror byte [0xc5b7eb71], 1
mov edx, 0x7609727d
imul esi, dword [edi], 0x44
aaa
inc esp
cmp ah, byte [ebx + 0x7f]
arpl word [edi + 0x3c], di
jo 0x40d6c8
cmp al, 0x70
in al, dx
mov cl, 0xcf
mov dl, 0xef
jae 0x40d6f0
jae 0x40d74d
xor al, 0x49
xor al, 0x68
jne 0x40d6f2
jbe 0x40d6d7
mov bh, 0xca
mov bh, 0xe5
js 0x40d6f7
jns 0x40d758
cmp dword [esi + 0x29], eax
adc al, 0xdb
jne 0x40d6d6
xchg esi, eax
sbb byte [edi + 0x78d6a826], dh
salc
mov bh, 0x26
test al, 0xd6
js 0x40d6d9
sbb dword [ebp - 0x2ce36dc5], edx
jge 0x40d6db
sahf
adc byte [edi + 0x70de9011], bh
fist word [ecx]
pushfd
xor bl, byte [ebx + edx - 0x6a248b26]
fidiv dword [ebx + ebx*8 - 0x6b]
xchg ebp, eax
sbb esi, dword [esi + 0x7ad49926]
aad 0x1b
xchg ebp, eax
cmp edx, dword [edx - 0x2c822ce4]
sahf
adc byte [edi + 0x70de9f11], bh
ficom word [ecx]
lahf
xor dword [edx + edx - 0x6b228c24], ebx
pushfd
adc bl, ah
jae 0x40d718
xchg esp, eax
sbb byte [esi + 0x78e69718], dh
salc
sbb dword [edx + edi + 0x7dd31b95], edx
rcr byte [edi - 0x6fd94ae3], 1
mov ch, 0x26
nop
fbstp tbyte [edx - 0x24]
adc ebx, dword [ebp - 0x19e967cc]
dec eax
out 0x48, al
aad 0x9b
adc eax, 0xd39c12bc
jge 0x40d736
sbb eax, 0x1d933d93
sar dword [esi - 0x30], cl
sahf
adc byte [edi + 0x73df9011], bh
fst qword [ebx]
wait
cwde
push ss
fnstenv [edi - 0x1a]
nop
fbstp tbyte [ebx - 0x23]
adc ebx, dword [ebx - 0x26e967ca]
ja 0x40d761
cwde
push ss
mov ecx, 0x7bd49a17
rcr byte [0x10913e93], cl
fidiv word [ecx - 0x21]
xchg ebx, eax
sbb dh, byte [ebx + ebx - 0x2689276b]
pop ss
sbb edx, dword [ebp + 0x17d976d8]
cdq
aaa
cmpsb byte [esi], byte es:[edi]
sbb bh, dl
jns 0x40d76f
lcall 0x73dd, 0x911ebd12
fst qword [edx + ebx*4]
xor al, 0x9b
adc eax, 0x97d875db
sbb dword [eax + 0x79d69816], ecx
xlatb
sbb dl, byte [ebx + edi + 0x7cd21c95]
rcr dword [ebp - 0x6eee42ed], cl
fdiv qword [ebx - 0x23]
adc al, 0x9a
sbb al, 0xd2
jl 0x40d78e
popfd
adc edi, dword [ebp + 0x73dc9111]
fst qword [edx + ebx*4]
xor eax, 0x78d62898
xlatb
cdq
pop ss
mov ecx, 0x7ad49a14
aam 0x1b
xchg ebx, eax
aas
sahf
adc bl, ah
jb 0x40d7b7
xchg edx, eax
sbb esi, dword [esi + 0x7ad49826]
aam 0x1b
xchg ebp, eax
cmp eax, 0x7fd11e90
ficom word [ecx - 0x6be54be3]
invalid