Function at 0x407074
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp]
add byte [ebx - 0x7cee74f2], cl
rol dword [eax], cl
jg 0x444cbf
xor al, byte [eax]
add al, al
jne 0xfa4cd2
cmp dword [ecx], 0x7fffffff
mov eax, dword [eax]
add byte [esp + ecx*2 - 0x16fffc24], al
add byte [edx + edx*8 + 0x1c70875], al
add dword [eax], eax
add byte [eax], al
mov eax, dword [esi]
mov ecx, dword [ebp - 0x80]
add cl, cl
je 0x4070ec
mov dword [eax + 0x210], 0
jle 0x407131
add byte [ebp + 0x10], dl
mov eax, dword [esi]
lea edx, [edx + 4]
add byte [eax], al
mov edi, dword [eax - 0xffffdf0]
add bh, bh
inc eax
jge 0x4070e7
mov dword [eax + edi*4], ebx
mov eax, dword [esi]
call dword [ebp + 0x200]
sub ecx, 1
jne 0x4070ec
add byte [esi], cl
mov ebx, dword [ecx + 8]
test dword [ebp + 0xf18400], eax
add byte [eax], al
mov edi, dword [ecx]
cmp edi, dword [ecx + 0x1b10]
jne 0x4071ea
add byte [eax], al
test edi, edi
jle 0x40713a
lea esi, [esi]
add byte [ebx + 0x104b8], al
add byte [eax], al
cmp dword [eax + 0x104], 0
add byte [eax], al
leave
add byte [eax], al
add byte [ebx + 0x10086], cl
add byte [ebx], bh
xor byte [ebx - 0x72ffff8b], cl
mov eax, 0x30000000
add byte [eax], dh
add al, al
add al, 0x3b
xlatb
jl 0x407114
xor eax, dword [eax]
add byte [ebp + 0x10], dl
test edi, edi
jle 0x40714d
add byte [ecx + 0x110], al
mov dword [ebp], eax
add byte [esi], al
push es
lea ebx, [ebx + 0xc30000]
cmp dword [eax - 0x104], 0xea
jne 0x4071da
mov eax, 0x20005441
imul ebx
sar edx, 7
mov eax, dword [eax]
add bl, ch
pop ds
add ebx, edx
mov esp, edi
add byte [ebx + 0x8b1055], cl
imul eax, dword [eax]
add al, dl
mov eax, dword [ebp + 8]
sub ecx, 0
mov dword [ebp + 0x10], edx
mov dword [ebp + 8], eax
add dword [eax], 0
jne 0x407154
or byte [ebx + 0x558900e9], al
adc byte [ecx + 0x830845], cl
add byte [ebp - 0x3b], dh
test edx, edx
js 0x407180
add byte [ecx + 4], al
lea ebx, [edx*4]
mov ecx, dword [ebx + eax]
test ecx, ecx
aam 0
dec ebp
fild dword [ebx]
add byte [edx + 0x10], ch
call fcn.004171af
add esp, 4
sbb eax, dword [eax]
mov ecx, edi
push dword [ebp + 0xc]
mov dword [edi], 0
call fcn.00413ba4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov dword [eax], eax
add byte [ebx + 0x4418b0e], cl
jnp 0x4071d4
add ebx, dword [edi + 0x5e]
pop ebx
pop ebp
ret
mov eax, dword [eax]
add byte [ebp + 8], bl
cdq
idiv dword [ebx - 0xff17]
mov ebx, eax
jmp 0x407171
xor eax, dword [eax]
add bh, ah
push ebp
mov ebp, esp
cmp dword [edx + 0x64ec8300], 0x53
mov ebx, dword [ebp + 8]
add byte [eax], al
dec esp
and al, 0x24
push edi
mov ebx, dword [edx]
mov esi, dword [eax]
mov ecx, esi
call fcn.004074d4
mov eax, dword [esi + 8]
mov eax, dword [eax]
inc byte [eax]
and al, 0x10
mov eax, dword [ebx + 4]
mov esi, dword [eax]
add byte [eax], al
call fcn.004074d4
mov ebp, 0x788b0800
add al, 0x8b
inc ebx
add al, 0
add byte [ebx + ecx*4], al
into
call fcn.0040e2d4
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [eax], eax
add byte [eax], ah
mov eax, dword [ebx + 4]
mov ebp, dword [edx]
add byte [ebx + 0x289e8ce], cl
add byte [eax], al
add byte [eax], al
or byte [ebp - 0x6bbfdbb4], cl
add byte [eax + 4], dh
mov dword [esp + 0x20], esi
call 0x3f725f
mov edx, dword [ebp + 8]
mov edx, 0x89c03300
pop esp
and al, 0x30
mov al, byte [eax]
add byte [eax - 0x7cf0dbb4], cl
fadd dword [eax]
add ecx, dword [edi]
or byte [esi + 0x3da], 0
add al, 0x8b
dec eax
or al, ch
mov word [eax], es
add byte [eax], al
mov edx, eax
xor eax, eax
inc eax
add byte [eax], al
and al, 0x30
test dl, 2
mov ch, 0
push 0xffffffffffffffda
add eax, dword [eax]
mov cl, al
and eax, dword [eax]
add byte [esp + 0xf], cl
mov dword [edi + edi*8], edx
test esi, esi
je 0x444d10
add dl, al
sub eax, ebx
je 0x437337
sub eax, 1
jne 0x4372bf
mov dword [esp + 0x53], ebx
add bh, bh
jle 0x40732c
mov esi, dword [esp + 0x10]
add byte [eax], al
and al, 0x20
mov ecx, esi
push edi
xchg esi, eax
add byte [eax], dl
call fcn.004074b5
mov eax, dword [eax]
add byte [esp + 0x30], dl
pop ecx
test edi, eax
add byte [eax + esi*4 - 0x74ffffff], al
inc esp
add byte [eax], al
mov ecx, edx
sub ecx, esi
shl dword [edi + 0x7c89f900], 1
and al, 0x34
sub edi, eax
add byte [eax], al
cwde
add dword [eax], eax
add byte [eax - 0x1a], dl
add byte [esp], ah
push edx
call fcn.004263b2
add ah, al
or al, 0x85
ror byte [edi], 0xf2
add dl, bl
add eax, dword [eax]
mov eax, dword [esp + 0x1c]
add byte [eax], al
and al, 0x14
lea ecx, [eax + eax]
mov ebp, 0x32c2400
int1
test edi, edi
jg 0x40732c
add byte [ebp + 8], bh
mov eax, dword [edi + 4]
stc
add byte [ebx + 0x199e8ce], cl
add byte [eax], al
add byte [eax], al
or byte [ebx + 0x7e448900], cl
add byte [ebx + 0x308b0447], cl
mov ecx, esi
add byte [eax], al
add dword [eax], eax
add byte [ebx + 0x7400cb46], cl
and al, 0x14
mov edi, dword [eax + 4]
mov eax, dword [eax]
add al, ch
dec ebp
invalid
je 0x4372e3
mov ecx, ebp
add byte [ebx - 0x44f37410], cl
lea edx, [ebp]
add dl, al
add eax, dword [eax]
add byte [edi + eax*4 + 0x3b470500], al
invalid
add al, bh
jne 0x475825
add byte [eax], al
mov eax, 0xc84d8d50
std
add bl, ch
invalid
mov eax, dword [edi + edx*4]
mov dword [ebx], edx
add byte [eax], al
inc eax
or byte [esi - 0x7d], ah
clc
xor byte [eax], al
test ah, al
in al, 3
add byte [edx + 0x48], ch
add byte [eax], al
cmp eax, ebx
mov ebx, dword [ebp + 0xc]
cmp dword [eax], eax
inc ecx
add dword [eax], eax
add byte [esi + 0x3b], ah
inc ebp
add byte [eax], al
test byte [ecx], cl
add dword [eax], eax
add byte [eax + eax], dl
inc ebp
fmul qword [edi]
test dl, dl
in al, 3
add byte [eax], al
jmp 0x437316
push edx
jg 0x444d34
cmc
in al, dx
mov cl, 0x8d
or al, 0xb4
sub ebx, ebp
call 0x1bfcde08
pushal
imul ebx, dword [edi + 0x1d], 0xb7aa1707
cmp dword [esi + 0x57], edx
salc
inc edi
ror dword [ebx], cl
and bh, byte [ecx - 0x6bc392f7]
adc al, 0x24
dec esi
insd dword es:[edi], dx
pop ebp
dec ebx
invalid
test dword [esi], esp
cmpsd dword [esi], dword es:[edi]
jns 0x444d3b
retf 0xddc5
fisttp dword [ecx + 0x5f22966]
ret 0xb898
sub edx, esi
add eax, 0xf4b898c2
inc esi
and ch, byte [esi]
jecxz 0x444d90
sub dword [ebx - 0x72b9f42a], eax
mov cl, 0xf8
sbb dword [ecx + 0x5492a156], esi
push esp
and esi, dword [ebp - 0x23]
pop edi
popfd
dec edi
inc ebp
or al, dh
mov bl, 0xdf
jae 0x444d72
xor byte [ebx + 0x1d4d8aa9], dh
insd dword es:[edi], dx
and eax, 0x1e3e51d2
dec ebx
test dword [esi + 0x1717bce1], ebp
mov dl, 0xfb
adc byte [eax], bl
inc ecx
sbb ah, byte [eax]
jmp 0x444d18
jnp 0x444d78
lcall 0x5368, 0x87666eeb
xchg dword [eax + 0x53], ebp
pop es
cli
push 0xfffffffffffffff4
inc eax
jnp 0x444d1b
dec eax
out dx, al
xor byte [esi], ah
invalid
in al, dx
xchg ebp, eax
out 0x13, al
invalid
leave
inc ebx
je 0x4757f6
lodsb al, byte [esi]
shl byte [esi - 0x63eda7a1], 0x35
mov cl, 0x92
inc edx
aam 0x68
mov bl, ah
sub al, 0x48
dec ecx
mov esi, 0x9f6b50bb
jge 0x475811
movsb byte es:[edi], byte [esi]
mov dword [0x7bee27a1], eax
jl 0x475803
out 0xe, eax
dec ebx
xor cl, byte [esp + ecx*4 + 3]
loope 0x4757fd
lds ebp, [eax + 0x2c6b7b80]
cmp eax, dword [ecx + 0x2070fdc6]
sub al, 0x3b
add esi, 0x1a2070fd
lds esi, [ecx]
sbb ebp, dword [eax]
cmpsd dword [esi], dword es:[edi]
sbb al, ch
xor dword [ebx], ebx
sub byte [edi + 0x2db98516], ah
test al, 0x8b
dec edi
push ss
test dword [ecx + 0x4f8ba82d], edi
std
and al, 0xe7
ljmp 0x4d8e
test eax, 0x80e14d8e
mov ebp, esp
xchg ebp, eax
pop ecx
mov dword [0x55e861ac], eax
push ebp
jecxz 0x475889
push ebx
outsb dx, byte [esi]
outsd dx, dword [esi]
cmpsb byte [esi], byte es:[edi]
or al, 0x22
inc edx
jns 0x47581e
mov byte [0xd630ccd7], al
xchg ebp, eax
outsb dx, byte [esi]
loop 0x4757c3
mov dl, 0x6d
imul ebp, dword [ebx], 0xa5259296
sal dword [ecx], 1
sub eax, 0x7b12f751
cdq
mov byte [0x6462b7fa], al
or ebx, dword [ebp + ebp - 0x42dc6a7]
rol byte [edx], cl
cmpsd dword [esi], dword es:[edi]
inc ecx
add ch, bh
faddp st(2)
jge 0x4758c0
ja 0x47589d
in eax, 0x46
and byte [eax + ebp*2], al
or edi, ebp
outsb dx, byte [esi]
xchg eax, edi
pop es
enter 0x6182, 0x24
and byte [edx + 0x48], dh
or eax, 0x3c5242db
sbb eax, 0xa551f074
add dword [edx + 0x5d], 0x8a56a997
mov ebx, 0xfd2c1f8e
sbb al, 0xbf
mov byte [ebx], dh
in eax, dx
or eax, 0xa833464e
adc al, ah
sbb dh, byte [esp]
add byte [eax - 0x382d0870], 0x8d
dec esi
invalid
cli
invalid
in eax, dx
push esi
cmpsd dword [esi], dword es:[edi]
and dword [eax - 0x45563617], edi
cld
xor dword [esi], ecx
push esi
sar eax, cl
jmp 0x90304689