Function at 0x40d7b2
Capabilities:
Encode data using xor

Disassembly:
add eax, esi
add dword [ecx + 0x7e], esi
pushal
sbb byte [esi], al
jns 0x40d7c0
pop ebx
or esi, dword [ebp - 0x16]
xchg ebp, eax
or byte [eax + 0x2f], dh
push ecx
push cs
jb 0x40d814
adc ecx, dword [ebx + esi*2]
sub al, 0x6c
add bh, byte [ebp - 0x1e]
jge 0x40d791
sahf
pop es
jns 0x40d7d7
invalid
and al, 0x55
push ebp
or byte [edi + 0x68], dh
pop ss
pshufw mm5, qword [edi], 0x51
push 0x2f700f17
push ecx
push cs
jno 0x40d7ad
xchg ecx, eax
or al, 0x73
adc ebx, dword [ebx + eax + 0x7c]
bound ebx, qword [0x58207e01]
pop es
js 0x40d7b6
cdq
push es
jns 0x40d7f7
push ebp
or dh, byte [esi + 0x68]
adc byte [edi], cl
jno 0x40d809
insb byte es:[edi], dx
xor edi, dword [ebx - 0x63]
add bh, byte [ebp + 0x22]
pop esi
add dword [esi + 0x61], edi
pop ds
push es
jp 0x40d80f
push ebp
or dword [esi - 0x17], esi
xchg esi, eax
or dword [edx + 0x2c], esi
insb byte es:[edi], dx
add bh, byte [esi + 0x61]
push ds
add byte [ecx + 0x26], bh
pop edx
add eax, 0x994e47b
ja 0x40d832
xchg esp, eax
or dword [edi + 0x2f], esi
push eax
push cs
jno 0x40d874
adc cl, byte [esp + ecx*2]
dec esp
and ebx, dword [ebp + 5]
jnp 0x40d7f7
xchg edi, eax
push cs
dec esp
adc ebp, dword [ebx + esi + 0x7c]
bound ebx, qword [0x5e217d02]
xor edi, dword [edx + 0x1d]
add bh, byte [ebp + 0x21]
pop esi
and dword [esi + 1], ebx
jg 0x40d7ff
add dword [edi - 0x20], edi
lahf
add byte [edi + 0x27], bh
pop eax
pop es
js 0x40d88d
sbb dword [0x45b247a], eax
jnp 0x40d81a
xchg esp, eax
or dh, byte [ebp + 0x2a]
push esi
or dword [edi + 0x68], esi
sub dl, byte [esi + 9]
ja 0x40d89f
adc byte [ebx], dh
jge 0x40d85d
pop ebp
add bh, byte [esi - 0x1f]
sahf
add dword [esi + 0x21], edi
pop esi
add dword [edi + 0x60], edi
jg 0x40d8a7
pop ds
add byte [edi + 0x20], bh
pop edi
add byte [edi - 0x20], bh
cwde
pop es
js 0x40d87a
daa
pop eax
pop es
js 0x40d8be
sbb byte [edi], al
jns 0x40d881
pop ecx
push es
jns 0x40d845
lcall 0x7b05, 0x5a257a05
sbb eax, dword fs:[ebx + edi*2]
sub edx, dword [edx + ecx + 0x75]
call 0x2cb2e703
insb byte es:[edi], dx
add edi, dword [ebp + 0x61]
pop ds
push es
jp 0x40d8a6
sub edx, dword [ebp + 0xa]
ja 0x40d852
push ebp
or dh, byte [edi - 0x2d]
pushfd
add edi, dword [ebp + 0x21]
jge 0x40d8a4
pop edi
add byte [eax + 0x67], bh
sbb dword [esi], eax
jp 0x40d8b6
push esp
or esi, dword [ebp - 0x16]
jne 0x40d879
xchg ebp, eax
or dword [ebx + edx + 0x5d], ecx
push es
jae 0x40d8ea
push ds
add byte [eax + 0x27], bh
pop eax
push es
jne 0x40d887
lodsb al, byte [esi]
xor ecx, dword [edi + 0x58]
pop es
js 0x40d90e
sbb byte [bx], al
sbb byte [edi], al
js 0x40d8d0
pop ebx
or esi, dword [ebp - 0x17]
nop
or eax, 0xa2af1373
xor esp, dword [ebx - 0x5fcf5fb0]
mov dword [0xa030a050], eax
adc byte [eax - 0x592e5ed0], ah
xor al, 0xa4
mov eax, dword [0xa434a6d1]
adc eax, 0x5caf3eae
lodsb al, byte [esi]
cmp eax, 0x32a232ad
mov byte [0xa437a1d3], al
sbb dword [edi - 0x52a350c1], ebp
mov eax, dword [0xaf19a437]
aas
scasd eax, dword es:[edi]
pop esp
lodsd eax, dword [esi]
cmp eax, 0x30a21292
mov al, byte [0xaa3aa4d1]
sbb byte [edi - 0x58af5dc4], ch
xor al, 0xa4
movsb byte es:[edi], byte [esi]
adc al, 0xab
cmp ebp, dword [esi - 0x6dc25221]
adc esp, dword [eax - 0x5eaf5cae]
xor dword [edi - 0x55c55aeb], esp
fld xword [ebx - 0x56e657c8]
cmp dword [esi - 0x52c350a2], ebp
sbb eax, 0xd3a202ad
mov dword [0xa110a033], eax
cmpsb byte ss:[esi], byte es:[edi]
push esi
cmpsd dword [esi], dword es:[edi]
mov byte [0xa033a3d3], al
adc byte [ecx - 0x58a959ca], ah
aaa
movsb byte es:[edi], byte [esi]
adc al, 0xa4
xor al, 0xa5
aad 0xaa
cmp ch, byte [ebx - 0x56c656e8]
pop ecx
test eax, 0x931ea939
xor byte [eax - 0x5fcf5f30], ah
adc byte [eax - 0x5eae5fd0], ah
xor dword [ecx - 0x5ece5eef], esp
salc
cmpsb byte [esi], byte es:[edi]
cmpsb byte ss:[esi], byte es:[edi]
push ss
cmpsb byte [esi], byte es:[edi]
cmpsb byte ss:[esi], byte es:[edi]
push edi
cmpsd dword [esi], dword es:[edi]
aaa
cmpsd dword [esi], dword es:[edi]
pop ss
cmpsd dword [esi], dword es:[edi]
aaa
cmpsd dword [esi], dword es:[edi]
aam 0xa4
xor al, 0xa4
adc al, 0xa4
xor al, 0xa4
push ebp
movsd dword es:[edi], dword [esi]
xor eax, 0x35a515a5
nop
shl byte [edx - 0x5ded5dce], cl
xor ah, byte [edx - 0x71cc6dae]
adc ebp, dword [edx - 0x5c795cfe]
xchg edx, eax
mov dword [0x92caa38e], eax
push ebx
xor byte [edx + 0x5e30f610], al
loop 0x40d921
cli
mov eax, dword [0xa746ba2a]
mov ah, 0x15
pop es
sbb byte [edx - 0x1dfc7de2], ah
mov dword [edx - 0x67378dbb], 0x64a102de
stosd dword es:[edi], eax
invalid