Function at 0x56c800
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
movd xmm0, dword [ebp + 8]
mov ecx, 0x64
movsd xmm1, qword [0x654890]
cvtdq2pd xmm0, xmm0
push esi
mov esi, dword [ebp + 8]
mov eax, esi
cmp esi, ecx
push edi
cmovl eax, ecx
mov dword [ebp - 0x24], eax
divsd xmm1, xmm0
mov eax, dword [ebp + 0x18]
mov edi, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], edi
imul eax, eax
movsd qword [ebp - 0x3c], xmm1
shl eax, 3
push eax
push 0
push edi
call fcn.005b9760
mov eax, dword [ebp + 0x14]
shl eax, 3
push eax
push 0
push dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
call fcn.005b9760
mov ecx, dword [ebp + 0x10]
add esp, 0x18
xorps xmm3, xmm3
test esi, esi
jle 0x56c9b5
movd xmm0, dword [ebp + 8]
xor eax, eax
movsd xmm2, qword [0x8725b8]
mov edx, edi
movsd xmm1, qword [0x872970]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x14], ecx
sub dword [ebp - 0x14], edi
xor ecx, ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], edi
divsd xmm2, xmm0
nop
mov eax, dword [ebp - 0x14]
movsd qword [eax + edx], xmm2
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
movsd qword [edx], xmm3
test ecx, ecx
jle 0x56c913
mov esi, dword [ebp + 0xc]
add eax, ecx
mov edx, dword [ebp - 0x20]
sub esi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x10], ecx
nop
mov edi, dword [ebp - 0x28]
movsd xmm0, qword [edi + eax]
mov edi, dword [ebp - 4]
mulsd xmm0, xmm0
addsd xmm0, qword [edi + esi*8]
movsd qword [edi + esi*8], xmm0
movsd xmm0, qword [eax]
add eax, dword [ebp - 0xc]
movsd qword [edx], xmm0
add edx, 8
sub dword [ebp - 0x10], 1
jne 0x56c8e0
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 8]
lea edx, [ecx + 1]
mov dword [ebp - 0x28], edx
cmp edx, esi
jge 0x56c98a
add eax, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
add eax, edx
lea edx, [edi + eax*8]
mov eax, dword [ebp - 8]
add eax, ecx
mov ecx, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
lea eax, [ecx + eax*8]
sub ecx, edi
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x28]
sub dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
nop dword [eax]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
addsd xmm0, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm0
movsd xmm0, qword [edx + esi]
mulsd xmm0, qword [eax]
add eax, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
xorps xmm0, xmm1
movsd qword [edx], xmm0
add edx, 8
sub dword [ebp - 0x10], 1
jne 0x56c950
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov ecx, edx
add eax, dword [ebp + 0x14]
add dword [ebp - 0x20], edi
mov dword [ebp - 8], eax
lea edx, [edi + 8]
mov edi, dword [ebp - 4]
add dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x1c]
add edx, 8
mov dword [ebp - 0x1c], edx
cmp ecx, esi
jl 0x56c8b0
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x24], eax
jle 0x56cd0c
movsd xmm7, qword [0x872960]
nop dword [eax + eax]
movaps xmm5, xmm3
test esi, esi
jle 0x56ca42
mov eax, dword [ebp + 0x18]
xor edx, edx
sub ecx, eax
mov dword [ebp - 0x28], eax
mov edi, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x20], esi
nop dword [eax]
movsd qword [edi], xmm3
xor ecx, ecx
mov edi, dword [ebp - 4]
movaps xmm1, xmm3
nop dword [eax]
lea eax, [edx + ecx]
movsd xmm0, qword [edi + eax*8]
mov eax, dword [ebp + 0x10]
mulsd xmm0, qword [eax + ecx*8]
inc ecx
addsd xmm1, xmm0
cmp ecx, esi
jl 0x56ca00
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
add edx, dword [ebp + 0x14]
movsd qword [edi], xmm1
movsd xmm0, qword [eax + edi]
add edi, 8
sub dword [ebp - 0x20], 1
mulsd xmm0, xmm1
mov dword [ebp - 0x28], edi
addsd xmm5, xmm0
jne 0x56c9f0
mov edi, dword [ebp - 4]
xor eax, eax
movaps xmm1, xmm3
cmp esi, 4
jl 0x56caa7
mov ecx, dword [ebp + 0x18]
lea edx, [esi - 4]
shr edx, 2
add ecx, 0x10
inc edx
lea eax, [edx*4]
movsd xmm0, qword [ecx - 0x10]
subsd xmm0, xmm5
andps xmm0, xmm7
maxsd xmm0, xmm1
movsd xmm1, qword [ecx - 8]
subsd xmm1, xmm5
andps xmm1, xmm7
maxsd xmm1, xmm0
movsd xmm0, qword [ecx]
subsd xmm0, xmm5
andps xmm0, xmm7
maxsd xmm0, xmm1
movsd xmm1, qword [ecx + 8]
subsd xmm1, xmm5
add ecx, 0x20
andps xmm1, xmm7
maxsd xmm1, xmm0
sub edx, 1
jne 0x56ca60
cmp eax, esi
jge 0x56cac8
mov ecx, dword [ebp + 0x18]
nop
movsd xmm0, qword [ecx + eax*8]
inc eax
subsd xmm0, xmm5
andps xmm0, xmm7
maxsd xmm0, xmm1
movaps xmm1, xmm0
cmp eax, esi
jl 0x56cab0
movsd xmm0, qword [ebp - 0x3c]
comisd xmm0, xmm1
ja 0x56cd04
test esi, esi
jle 0x56ccde
mov eax, dword [ebp + 0x18]
mov edx, eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x10]
movaps xmm4, xmm5
subsd xmm4, qword [edx]
divsd xmm4, qword [eax]
mov eax, dword [ebp - 0x20]
movaps xmm0, xmm4
movaps xmm2, xmm4
addsd xmm0, qword [edx + eax]
addsd xmm2, qword [0x8725b8]
movaps xmm6, xmm4
unpcklpd xmm6, xmm6
movsd qword [edx + eax], xmm0
movaps xmm0, xmm4
movsd xmm1, qword [edx]
mov edx, dword [ebp - 0x10]
addsd xmm1, xmm1
mov eax, dword [ebp + 0x18]
mulsd xmm0, qword [edx]
xor edx, edx
mov dword [ebp - 0x1c], edx
addsd xmm1, xmm0
mulsd xmm1, xmm4
addsd xmm1, xmm5
divsd xmm1, xmm2
divsd xmm1, xmm2
movaps xmm5, xmm1
cmp esi, 4
jb 0x56cc65
lea edi, [esi - 1]
mov dword [ebp - 0x1c], edx
lea edi, [ecx + edi*8]
mov dword [ebp - 0x30], edi
lea edi, [eax - 8]
lea edi, [edi + esi*8]
mov dword [ebp - 0x34], edi
cmp ecx, edi
mov edi, dword [ebp - 4]
ja 0x56cb8f
cmp dword [ebp - 0x30], eax
jae 0x56cc65
mov eax, dword [ebp - 0x14]
dec eax
add eax, esi
lea eax, [edi + eax*8]
mov dword [ebp - 0x30], eax
cmp ecx, eax
ja 0x56cbb1
lea eax, [esi - 1]
lea eax, [ecx + eax*8]
cmp eax, dword [ebp - 8]
jae 0x56cc65
mov eax, dword [ebp - 0x30]
cmp dword [ebp + 0x18], eax
ja 0x56cbc2
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x34], eax
jae 0x56cc65
mov eax, esi
and eax, reloc.WS2_32.dll_closesocket
jns 0x56cbd0
dec eax
or eax, 0xfffffffc
inc eax
movaps xmm3, xmmword [0x872920]
mov edi, esi
mov esi, dword [ebp + 0x18]
sub edi, eax
mov dword [ebp - 0x1c], edi
lea eax, [ecx + 0x10]
mov edi, dword [ebp - 8]
add edi, 0x10
sub esi, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x30], esi
mov esi, edi
addpd xmm3, xmm6
mov dword [ebp - 0x34], edi
nop dword [eax + eax]
movups xmm1, xmmword [esi - 0x10]
mov edi, dword [ebp - 0x30]
movups xmm0, xmmword [ecx + edx*8]
mulpd xmm1, xmm6
addpd xmm1, xmm0
divpd xmm1, xmm3
movups xmmword [ecx + edx*8], xmm1
add edx, 4
movups xmm0, xmmword [eax - 0x10]
movaps xmm1, xmm6
divpd xmm0, xmm3
movups xmmword [eax - 0x10], xmm0
movups xmm0, xmmword [esi]
add esi, 0x20
mulpd xmm1, xmm0
movups xmm0, xmmword [edi + eax]
addpd xmm1, xmm0
divpd xmm1, xmm3
movups xmmword [edi + eax], xmm1
mov edi, dword [ebp - 4]
movups xmm0, xmmword [eax]
divpd xmm0, xmm3
movups xmmword [eax], xmm0
add eax, 0x20
cmp edx, dword [ebp - 0x1c]
jl 0x56cc00
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edx
cmp edx, esi
jge 0x56ccb3
mov eax, dword [ebp - 0x14]
lea ecx, [ecx + edx*8]
add eax, edx
mov edx, dword [ebp + 0x18]
sub edx, dword [ebp + 0x10]
lea eax, [edi + eax*8]
mov edi, esi
sub edi, dword [ebp - 0x1c]
nop
movsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, xmm4
addsd xmm0, qword [ecx + edx]
divsd xmm0, xmm2
movsd qword [ecx + edx], xmm0
movsd xmm0, qword [ecx]
divsd xmm0, xmm2
movsd qword [ecx], xmm0
add ecx, 8
sub edi, 1
jne 0x56cc80
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
add eax, 8
add dword [ebp - 0x10], eax
add edx, 8
mov eax, dword [ebp + 0x14]
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
sub dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], edx
jne 0x56cb00
xorps xmm3, xmm3
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x24]
jl 0x56c9d0
push str.Exceeds_i32_max_iter_in_multiclass_prob_n
call fcn.0047c96f
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x24]
jl 0x56cd19
push str.Exceeds_i32_max_iter_in_multiclass_prob_n
call fcn.0047c96f
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret