Function at 0x1da6980
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2e8
mov eax, dword [0x1e94008]
xor eax, esp
mov dword [esp + 0x2e4], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
mov dword [esp + 0x30], ecx
mov edx, esi
movss dword [esp + 0x38], xmm2
imul edx, dword [ebp + 0xc]
mov ecx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], esi
call fcn.01d9f000
push 0x80
lea eax, [esp + 0x1ec]
movsd qword [esp + 0x44], xmm0
push 0
push eax
call fcn.01e05050
mov edx, dword [ebp + 0xc]
add esp, 0xc
test edx, edx
jle 0x1da6a83
mov edx, dword [ebp + 0x10]
lea eax, [esi*4]
mov ecx, dword [ebp + 0xc]
inc edx
mov dword [esp + 0x20], eax
mov eax, edi
mov dword [esp + 0x24], edx
lea edi, [esi*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
nop
cmp edx, 1
jle 0x1da6a71
lea edi, [eax + 4]
lea eax, [esi - 1]
lea ecx, [edx - 1]
mov dword [esp + 0x18], eax
lea esi, [esp + 0x1e8]
mov dword [esp + 0x10], ecx
nop dword [eax]
mov ecx, dword [esp + 0x14]
mov edx, edi
push eax
call fcn.01da58e0
addsd xmm0, qword [esi]
mov eax, dword [esp + 0x1c]
add esp, 4
dec eax
add edi, 4
mov dword [esp + 0x18], eax
movsd qword [esi], xmm0
add esi, 8
sub dword [esp + 0x10], 1
jne 0x1da6a30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add eax, edi
sub ecx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
jne 0x1da6a10
mov edx, dword [ebp + 0xc]
movsd xmm1, qword [esp + 0x40]
lea esi, [esp + 0x1e8]
movsd xmm7, qword [0x1e7e110]
lea edi, [esp + 0x268]
movsd xmm2, qword [0x1e7e810]
movaps xmm3, xmm1
mulsd xmm3, qword [0x1e7de58]
mov ecx, 0x20
mov dword [esp + 0x20], 0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x10]
movaps xmm6, xmm7
movaps xmm0, xmm3
movsd qword [esp + 0x50], xmm3
addsd xmm0, xmm1
movsd qword [esp + 0x28], xmm6
xor esi, esi
addsd xmm0, qword [0x1e7ddd8]
movsd qword [esp + 0xd8], xmm0
movsd qword [esp + 0x160], xmm0
test ecx, ecx
jle 0x1da6fad
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea edi, [eax*4]
lea eax, [edi - 4]
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], eax
nop word [eax + eax]
test edx, edx
jle 0x1da6cb2
mov edi, dword [esp + 0x3c]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x14], edi
add edi, eax
add eax, 4
mov dword [esp + 0x1c], edx
sub eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, ecx
sub eax, dword [esp + 0xc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], eax
movss xmm4, dword [eax + edi]
xor eax, eax
cvtps2pd xmm4, xmm4
movss xmm5, dword [eax + edi]
cvtps2pd xmm5, xmm5
test ecx, ecx
jle 0x1da6c1c
movss xmm6, dword [ecx + edx]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
add edx, 0xfffffffc
movss xmm7, dword [edi]
add ecx, edi
add edx, edi
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x4c]
nop dword [eax]
nop dword [eax + eax]
movss xmm3, dword [edi]
movaps xmm0, xmm6
movsd xmm1, qword [esp + eax*8 + 0x1e8]
sub edi, 4
movss xmm2, dword [ecx]
add ecx, 4
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp + eax*8 + 0x1e8], xmm1
movsd xmm1, qword [esp + eax*8 + 0x268]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm3
movsd qword [esp + eax*8 + 0x268], xmm1
movsd xmm1, qword [esp + eax*8 + 0x58]
inc eax
mulsd xmm0, xmm1
addsd xmm4, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm0, xmm5
movaps xmm5, xmm0
cmp eax, esi
jl 0x1da6ba0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
js 0x1da6c85
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
add ecx, edx
add edx, dword [esp + 0x10]
movss xmm1, dword [edx]
sub edx, 4
movsd xmm0, qword [esp + eax*8 + 0xd8]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm4
subsd xmm0, xmm1
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
add ecx, 4
movsd qword [esp + eax*8 + 0xd8], xmm0
movsd xmm0, qword [esp + eax*8 + 0x160]
mulsd xmm1, xmm5
subsd xmm0, xmm1
movsd qword [esp + eax*8 + 0x160], xmm0
inc eax
cmp eax, esi
jle 0x1da6c30
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add edx, dword [esp + 0x24]
add edi, dword [esp + 0x24]
sub dword [esp + 0x1c], 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
jne 0x1da6b56
movsd xmm6, qword [esp + 0x28]
movsd xmm7, qword [0x1e7e110]
movsd xmm2, qword [esp + esi*8 + 0x268]
xor ecx, ecx
movsd xmm3, qword [esp + esi*8 + 0x1e8]
movsd qword [esp + 0x28], xmm2
test esi, esi
jle 0x1da6d16
lea eax, [esi*8 - 8]
nop word [eax + eax]
movsd xmm1, qword [esp + ecx*8 + 0x58]
inc ecx
movsd xmm0, qword [esp + eax + 0x268]
mulsd xmm0, xmm1
addsd xmm3, xmm0
movsd xmm0, qword [esp + eax + 0x1e8]
mulsd xmm0, xmm1
sub eax, 8
addsd xmm2, xmm0
cmp ecx, esi
jl 0x1da6ce0
movsd qword [esp + 0x28], xmm2
xor eax, eax
movsd qword [esp + esi*8 + 0xe0], xmm3
movsd xmm4, qword [esp + 0xd8]
movsd qword [esp + esi*8 + 0x168], xmm2
movsd xmm5, qword [esp + 0x160]
test esi, esi
jle 0x1da6d92
lea ecx, [esp + 0x160]
lea ecx, [ecx + esi*8]
nop word [eax + eax]
movsd xmm1, qword [esp + eax*8 + 0x58]
movsd xmm0, qword [ecx]
sub ecx, 8
mulsd xmm0, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [esp + eax*8 + 0x168]
mulsd xmm0, xmm1
addsd xmm5, xmm0
movsd xmm0, qword [esp + eax*8 + 0xe0]
mulsd xmm0, xmm1
inc eax
addsd xmm4, xmm0
cmp eax, esi
jl 0x1da6d50
movsd qword [esp + 0x28], xmm2
movaps xmm3, xmm2
addsd xmm4, xmm5
mulsd xmm3, qword [0x1e7e4a0]
movaps xmm1, xmm7
movss xmm2, dword [esp + 0x38]
divsd xmm3, xmm4
movaps xmm0, xmm3
mulsd xmm0, xmm3
subsd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm6
comisd xmm0, xmm1
jb 0x1da6e0d
cvtps2pd xmm1, xmm2
movaps xmm0, xmm7
divsd xmm1, xmm6
subsd xmm0, xmm1
call fcn.01e2cc10
movaps xmm3, xmm0
xorps xmm1, xmm1
movsd xmm0, qword [esp + 0x28]
comisd xmm0, xmm1
jbe 0x1da6df2
xorps xmm3, xmmword [0x1e7e810]
movss xmm2, dword [esp + 0x38]
movsd xmm7, qword [0x1e7e110]
cvtps2pd xmm6, xmm2
mov dword [esp + 0x20], 1
jmp 0x1da6e10
movaps xmm6, xmm1
lea edx, [esi + 1]
movsd qword [esp + 0x28], xmm6
mov edi, edx
movaps xmm4, xmm3
sar edi, 1
xor eax, eax
unpcklpd xmm4, xmm4
test edi, edi
jle 0x1da6e62
lea ecx, [esp + esi*8 + 0x50]
nop
movsd xmm1, qword [ecx]
movaps xmm0, xmm3
movsd xmm2, qword [esp + eax*8 + 0x58]
mulsd xmm0, xmm1
addsd xmm0, xmm2
movsd qword [esp + eax*8 + 0x58], xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
inc eax
addsd xmm0, xmm1
movsd qword [ecx], xmm0
sub ecx, 8
cmp eax, edi
jl 0x1da6e30
cmp dword [esp + 0x20], 0
movsd qword [esp + esi*8 + 0x58], xmm3
jne 0x1da7019
xor eax, eax
test edx, edx
js 0x1da6f78
lea ecx, [edx + 1]
cmp ecx, 4
jb 0x1da6f26
and ecx, reloc.WS2_32.dll_closesocket
jns 0x1da6e96
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edi, edx
sub edi, ecx
lea ecx, [esp + esi*8 + 0x158]
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [ecx + 0x10]
movups xmm2, xmmword [esp + eax*8 + 0xd8]
unpcklpd xmm1, xmm0
movaps xmm0, xmm4
mulpd xmm0, xmm1
addpd xmm0, xmm2
mulpd xmm2, xmm4
movups xmmword [esp + eax*8 + 0xd8], xmm0
addpd xmm2, xmm1
movlpd qword [ecx + 0x10], xmm2
movsd xmm1, qword [ecx]
movhpd qword [ecx + 8], xmm2
movsd xmm0, qword [ecx - 8]
movups xmm2, xmmword [esp + eax*8 + 0xe8]
unpcklpd xmm1, xmm0
movaps xmm0, xmm4
mulpd xmm0, xmm1
addpd xmm0, xmm2
movups xmmword [esp + eax*8 + 0xe8], xmm0
add eax, 4
movaps xmm0, xmm4
mulpd xmm0, xmm2
addpd xmm0, xmm1
movlpd qword [ecx], xmm0
movhpd qword [ecx - 8], xmm0
sub ecx, 0x20
cmp eax, edi
jle 0x1da6ea1
cmp eax, edx
jg 0x1da6f78
sub esi, eax
lea ecx, [esp + 0x168]
lea ecx, [ecx + esi*8]
nop word [eax + eax]
movsd xmm1, qword [ecx]
movsd xmm2, qword [esp + eax*8 + 0xd8]
movaps xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm2
movsd qword [esp + eax*8 + 0xd8], xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
inc eax
addsd xmm0, xmm1
movsd qword [ecx], xmm0
sub ecx, 8
cmp eax, edx
jle 0x1da6f40
mov eax, dword [esp + 0xc]
mov esi, edx
mov ecx, dword [esp + 0x10]
sub eax, 4
mov edx, dword [ebp + 0xc]
add ecx, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp esi, dword [ebp + 0x10]
jl 0x1da6b20
movsd xmm2, qword [0x1e7e810]
movsd xmm3, qword [esp + 0x50]
mov ecx, dword [ebp + 0x10]
movsd xmm6, qword [esp + 0xd8]
xor eax, eax
test ecx, ecx
jle 0x1da6ff6
mov edx, dword [esp + 0x30]
movsd xmm1, qword [esp + eax*8 + 0x58]
movsd xmm0, qword [esp + eax*8 + 0xe0]
mulsd xmm0, xmm1
addsd xmm6, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm2
addsd xmm7, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [edx + eax*4], xmm0
inc eax
cmp eax, ecx
jl 0x1da6fc0
mulsd xmm3, xmm7
subsd xmm6, xmm3
mov ecx, dword [esp + 0x2ec]
xorps xmm0, xmm0
pop edi
pop esi
xor ecx, esp
cvtsd2ss xmm0, xmm6
call fcn.01e029b1
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
inc esi
cmp esi, edx
jge 0x1da7036
mov ecx, edx
lea edi, [esp + 0x58]
sub ecx, esi
lea edi, [edi + esi*8]
shl ecx, 3
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x30]
xor eax, eax
movsd xmm1, qword [0x1e7e810]
cmp edx, 4
jl 0x1da70a5
add edx, 0xfffffffd
lea ecx, [esi + 8]
nop
movsd xmm0, qword [esp + eax*8 + 0x58]
lea ecx, [ecx + 0x10]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [ecx - 0x18], xmm0
movsd xmm0, qword [esp + eax*8 + 0x60]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [ecx - 0x14], xmm0
movsd xmm0, qword [esp + eax*8 + 0x68]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [ecx - 0x10], xmm0
movsd xmm0, qword [esp + eax*8 + 0x70]
add eax, 4
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [ecx - 0xc], xmm0
cmp eax, edx
jl 0x1da7050
mov edx, dword [ebp + 0x10]
cmp eax, edx
jge 0x1da70c7
nop dword [eax]
movsd xmm0, qword [esp + eax*8 + 0x58]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esi + eax*4], xmm0
inc eax
cmp eax, edx
jl 0x1da70b0
cmp dword [ebp + 0xc], 0
jle 0x1da70ff
movsd xmm6, qword [esp + 0x40]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
nop dword [eax + eax]
mov ecx, esi
call fcn.01d9f000
add esi, edi
subsd xmm6, xmm0
sub dword [ebp + 0xc], 1
jne 0x1da70e0
movsd qword [esp + 0x40], xmm6
movsd xmm6, qword [esp + 0x28]
mulsd xmm6, qword [esp + 0x40]
jmp 0x1da6ffe