Function at 0x410401
Capabilities:
Encode data using xor

Disassembly:
inc dword [esi]
sub al, byte [eax]
add byte [ebx], dl
xor byte [eax], cl
add byte [ecx + 1], ah
add byte [eax], al
sub al, 0
add byte [ecx], dl
adc al, 0x13
add al, 2
sbb byte [edi], dl
push ss
adc al, byte [0x298d17]
lea ebp, [ecx]
add byte [eax], al
add dword [ebx], edx
or byte [ecx], dl
or byte [esi], dl
test al, 0
add byte [edx], cl
pop ss
xor cl, byte [esi]
push es
outsd dx, dword [esi]
test al, 0
add byte [edx], cl
sbb dh, bh
add dl, byte [esi]
inc byte [ecx]
sub eax, dword [ecx]
push ss
jb 0x4103cf
adc eax, 0x16287000
add byte [eax], al
or al, byte [esi]
push ss
outsd dx, dword [esi]
test eax, 0x740a0000
sub byte [eax], al
add byte [ecx], al
outsd dx, dword [esi]
sbb eax, dword [eax]
add byte [edx], cl
push ss
inc byte [edx]
jb 0x41047c
push ss
add byte [eax + 3], dh
sub byte [eax], al
add byte [esi], al
push es
outsd dx, dword [esi]
test al, 0
add byte [edx], cl
sbb byte [ebx], dh
adc eax, dword [esi]
pop ss
outsd dx, dword [esi]
test eax, 0x740a0000
sub byte [eax], al
add byte [ecx], al
sub byte [eax], ah
add byte [eax], al
push es
and byte [eax], al
add byte [esi], al
adc eax, dword [esi + eax]
push ss
outsd dx, dword [esi]
test eax, 0x740a0000
add byte [edx], cl
je 0x41048d
add byte [eax], al
add dword [eax], ebx
pop ss
push ss
adc al, byte [0x298d17]
add byte [ecx], al
adc ecx, dword [ecx]
adc dword [ecx], ecx
push ss
pop ds
sub al, 0x9d
adc dword [ecx], ecx
sub byte [0x13060000], bl
or dword [eax], ebp
sbb eax, 0x13060000
push es
adc dword [esi], eax
outsd dx, dword [esi]
test al, 0
add byte [edx], cl
pop ss
xor cl, byte [edi]
adc dword [esi], eax
outsd dx, dword [esi]
test al, 0
add byte [edx], cl
sbb dh, bh
add dl, byte [esi]
inc byte [ecx]
sub eax, dword [ecx]
push ss
jb 0x410456
adc eax, 0x16287000
add byte [eax], al
or dl, byte [ecx]
push es
outsd dx, dword [esi]
test al, 0
add byte [edx], cl
sbb byte [ebx], dh
sub dword [ecx], edx
push es
push ss
outsd dx, dword [esi]
test eax, 0x740a0000
sub byte [eax], al
add byte [ecx], al
sub byte [eax], ah
add byte [eax], al
push es
or edx, dword [ecx]
push es
pop ss
outsd dx, dword [esi]
test eax, 0x740a0000
sub byte [eax], al
add byte [ecx], al
sub byte [eax], ah
add byte [eax], al
push es
adc eax, dword [edi]
sub ebx, dword [edx]
jle 0x41050e
xor dword [eax], eax
add byte [edx], cl
or edx, dword [ecx]
push es
add byte [eax], al
or cl, byte [ebx]
adc dword [esi], eax
push ss
outsd dx, dword [esi]
test eax, 0x740a0000
sub byte [eax], al
add byte [ecx], al
sub byte [eax], ah
add byte [eax], al
push es
adc eax, dword [edi]
adc dword [edi], eax
outsd dx, dword [esi]
sbb eax, dword [eax]
add byte [edx], cl
push ss
inc byte [edx]
jb 0x410546
push ss
add byte [eax + 3], dh
sub byte [eax], al
add byte [esi], al
adc al, 0xc
adc al, 0xd
adc dword [edi], eax
jb 0x41057d
push ss
add byte [eax + 0x1b], dh
sub byte [esi], ah
add byte [eax], al
or ch, byte [0x16997207]
add byte [eax + 0x13], dh
pop es
adc dword [edi], eax
sub byte [edx], bh
add byte [edx], cl
sub al, 5
adc dword [edi], eax
or eax, 0x711032b
or al, 7
or byte [ecx], cl
adc dword [esp + eax], eax
jae 0x4104dc
add byte [eax], al
or ch, byte [edx]
add byte [eax], al
add byte [ebx], bl
xor byte [eax + eax], al
add al, 0
mov edi, 0x2d000000
add byte [eax], al
adc dword [edx + ecx], edx
add ch, byte [edi - 0x56]
add byte [eax], al
or cl, byte [edx]
push es
sub eax, 0xfe140612
add dword [esi], edx
push ss
inc byte [ecx]
jb 0x4105ad
pop ss
add byte [eax + 4], dh
sub byte [ebx], cl
add byte [esi], al
fisubr word [ebx + 0xb]
jb 0x4105e3
pop ss
add byte [eax + 4], dh
pop es
push ss
sub byte [eax + eax], cl
push es
ficomp word [ebx + 0xc]
pop ebx
or al, 0x72
invalid
pop ss
add byte [eax + 4], dh
or byte [esi], dl
sub byte [eax + eax], cl
push es
fimul word [ebx + 0xd]
jb 0x410603
pop ss
add byte [eax + 4], dh
or dword [esi], edx
sub byte [eax + eax], cl
push es
fidivr word [ebx]
adc eax, dword [edx + esi*2]
jo 0x4105bc
add byte [eax + 4], dh
adc dword [esi + edx], eax
sub byte [eax + eax], cl
add byte [eax], al
push es
fisubr word [ecx]
adc eax, dword [0x177072]
jo 0x4105be
adc dword [0x4c2816], eax
add byte [esi], al
push ss
sub byte [eax + eax], cl
dec esp
add byte [eax], al
push es
ficom word [edi]
adc eax, dword [esi]
jb 0x410560
pop ss
add byte [eax + 4], dh
adc dword [esi], eax
outsd dx, dword [esi]
cmp al, byte [eax]
add byte [edx], cl
pop ss
sub byte [eax + eax], cl
push es
fiadd word [eax]
push es
add ebp, dword [edi - 0x55]
add byte [eax], al
or al, byte [edx]
outsd dx, dword [esi]
lodsb al, byte [esi]
add byte [eax], al
or ch, byte [esp + ecx]
push es
add ch, byte [edi - 0x54]
add byte [eax], al
or ch, byte [edi - 0x53]
add byte [eax], al
or bl, dh
adc eax, 0x131afe26
pop es
jb 0x410597
pop ss
add byte [eax + 4], dh
adc dword [edi], eax
pop ss
sub byte [eax + eax], cl
push es
fiadd word [eax]
push es
sub al, byte [eax]
add dword [eax + eax], esp
add byte [eax], al
add al, byte [eax]
push ds
and byte [eax], al
adc byte [edi], dl
add byte [ecx], al
add byte [eax], al
add al, byte [eax]
push ds
xor byte [eax], al
adc byte [ebp], ah
add byte [ecx], al
add byte [eax], al
add al, byte [eax]
push ds
inc eax
add byte [eax], dl
push ebp
add byte [eax], al
add dword [eax], eax
add byte [edx], al
add byte [esi], bl
push eax
add byte [edx], dl
add byte [eax], al
add dword [eax], eax
add byte [edx], al
add byte [esi], bl
bound eax, qword [eax]
adc ah, byte [edi]
add byte [ecx], al
add byte [eax], al
add al, byte [eax]
push ds
je 0x410657
pop ss
push 0x10000
add byte [ebx + 0xa81d00], cl
add edi, dword [edi]
add byte [eax], al
add dword [eax], eax
add byte [ebx + 0xab1d00], cl
adc al, byte [0x13010000]
xor byte [ebx], al
add byte [eax + eax], al
add byte [esi], ch
add byte [eax], al
adc dword [edx + ecx], edx
add cl, byte [esi + edx]
or eax, 0x908342b
lcall 0x7201, 0xfe14060b
mov edx, 0x7700017
xor al, 8
or dword [edx - 0x1ebf9f5], ebx
add dword [edx - 0x46], esi
pop ss
add byte [eax + 7], dh
sub byte [ebx], cl
add byte [esi], al
pop es
sub byte [edx], bh
add byte [edx], cl
jb 0x410687
pop ss
add byte [eax + 7], dh
sub byte [ebx], cl
add byte [esi], al
sub byte [esi + 0x70a0000], ch
sub byte [edx + 0xa0a0000], al
or dword [edi], edx
pop eax
or eax, 0x698e0809
xor al, dh
push es
sub dl, byte [ebx]
xor byte [eax + eax], al
xor al, byte [eax]
add byte [eax], al
or al, 0
add byte [ecx], dl
jb 0x4106de
sbb byte [eax], al
jo 0x4106ee
lea eax, [edx]
add byte [eax], al
add dword [edx], ecx
push es
push ss
sub byte [edi + 0x6f0a0000], ch
sbb dword [eax], eax
add byte [edx], cl
mov byte [0xb0281706], al
add byte [eax], al
or ch, byte [edi + 0x19]
add byte [eax], al
or ah, byte [edx + 0x2f2806]
add byte [edx], cl
outsd dx, dword [esi]
sbb dword [eax], eax
add byte [edx], cl
mov byte [0x2f2806], al
add byte [edx], cl
sub byte [eax], al
add byte [edx], cl
sub al, byte [eax]
add byte [ebx], al
xor byte [ecx], al
add byte [ecx + 1], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
jb 0x410740
sbb byte [eax], al
jo 0x41073e
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x58]
sbb byte [eax], al
jo 0x41074d
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x74]
sbb byte [eax], al
jo 0x41075c
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x3a]
sbb byte [eax], al
jo 0x41076b
invalid
add byte [eax + 0x28], dh
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 4]
cld
sbb byte [eax], al
jo 0x41077a
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x38]
sbb dword [eax], eax
jo 0x410789
cmp byte [ecx], bl
add byte [eax + 0x28], dh
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x78]
sbb dword [eax], eax
jo 0x410798
js 0x410786
add byte [eax + 0x28], dh
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x44]
sbb dword [eax], eax
jo 0x4107a7
mov esp, 0x28700019
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 6]
add byte [edx], cl
jb 0x410784
cli
sbb dword [eax], eax
jo 0x4107b6
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x54]
push esp
sbb al, byte [eax]
jo 0x4107c5
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x62]
sahf
sbb al, byte [eax]
jo 0x4107d4
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x22]
sbb al, byte [eax]
jo 0x4107e3
ficomp word [edx]
add byte [eax + 0x28], dh
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x32]
sbb eax, dword [eax]
jo 0x4107f2
xor bl, byte [ebx]
add byte [eax + 0x28], dh
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x80]
sbb eax, dword [eax]
sbb byte [ebx], 0
jo 0x410801
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x2a]
salc
sbb eax, dword [eax]
jo 0x410810
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0xe]
push cs
sbb al, 0
jo 0x41081f
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx + 0x4a]
dec edx
sbb al, 0
jo 0x41082e
dec ebp
add byte [eax], al
or ch, byte [eax]
inc eax
add byte [eax], al
or dh, byte [edx - 0x5c]
movsb byte es:[edi], byte [esi]
salc
or al, 0x1d
add byte [eax + 0x28], dh
dec ebp