Function at 0x5a61e0
Capabilities:
Access peb ldr_data

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63ab21
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2128
call fcn.00531990
mov eax, dword [0x6e4770]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movsd xmm7, qword [ebx + 0x38]
mov ecx, dword [ebx + 0x34]
movsd xmm0, xmm7
mov eax, dword [ebx + 0x20]
mov esi, dword [ebx + 0x28]
mov edx, dword [ebx + 0x30]
mov dword [ebp - 0x20ec], ecx
lea ecx, [ebp - 0x20c0]
unpcklpd xmm0, xmm0
mov dword [ebp - 0x20e0], eax
mov eax, dword [ebx + 0x24]
movaps xmmword [ebp - 0x2130], xmm0
mov dword [ebp - 0x20e8], esi
mov dword [ebp - 0x20d8], edx
mov dword [ebp - 0x20c8], ecx
mov dword [ebp - 0x20c4], 0x208
mov dword [ebp - 4], 0
mov edi, dword [ebx + 0xc]
shr dword [ebx + 0x14], 3
shr dword [ebx + 0x1c], 3
shr edi, 3
shr eax, 3
mov ecx, edi
cmp dword [ebx + 0x18], 0
mov dword [ebp - 0x2100], eax
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x20f0], 0
mov dword [ebx + 0xc], edi
mov dword [ebp - 0x20e4], edi
mov dword [ebp - 0x20f8], 1
jne 0x5a62cf
mov dword [ebx + 0x1c], 0
mov dword [ebp - 0x20d0], 0
jmp 0x5a62f5
test al, 4
jne 0x5a62eb
mov esi, dword [ebx + 0x1c]
mov dword [ebp - 0x20d0], esi
mov esi, dword [ebp - 0x20e8]
mov dword [ebx + 0x1c], 1
jmp 0x5a62f5
mov dword [ebp - 0x20d0], 1
test al, 1
je 0x5a6347
mov esi, dword [ebx + 0x2c]
mov ecx, 1
mov dword [ebp - 0x20e4], ecx
mov dword [ebp - 0x20f8], edi
mov dword [ebp - 0x20e8], esi
cmp edi, ecx
jbe 0x5a6347
cmp esi, ecx
jle 0x5a634a
push esi
lea ecx, [ebp - 0x20c8]
call fcn.0055c080
mov eax, dword [ebp - 0x20c8]
movsd xmm7, qword [ebx + 0x38]
mov ecx, dword [ebp - 0x20e4]
mov edx, dword [ebp - 0x20d8]
mov dword [ebp - 0x20f0], eax
mov eax, dword [ebx + 0x48]
cmp esi, 1
jne 0x5a6676
lea eax, [ebp - 0x1068]
mov dword [ebp - 0x106c], 0x208
mov dword [ebp - 0x1070], eax
mov byte [ebp - 4], 1
cmp edi, 1
jbe 0x5a64a0
cmp dword [ebx + 0x2c], 1
jle 0x5a64a0
mov esi, dword [ebp - 0x20ec]
lea ecx, [ebp - 0x20c8]
push esi
call fcn.0055c080
mov edx, dword [ebp - 0x20c8]
xor ecx, ecx
mov dword [ebp - 0x20f0], edx
cmp esi, 4
jl 0x5a645c
mov ecx, dword [ebx + 8]
lea eax, [edi + edi*2]
mov esi, edi
add edx, 0x10
shl esi, 5
mov dword [ebp - 0x20e4], esi
lea eax, [ecx + eax*8]
mov dword [ebp - 0x20fc], eax
mov eax, edi
shl eax, 4
add eax, ecx
lea ecx, [ecx + edi*8]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x20d4], ecx
mov ecx, dword [ebp - 0x20ec]
lea ecx, [ecx - 4]
shr ecx, 2
inc ecx
mov dword [ebp - 0x20dc], ecx
shl ecx, 2
mov dword [ebp - 0x20cc], ecx
mov ecx, dword [ebp - 0x20fc]
jmp 0x5a6400
movsd xmm0, qword [edi]
lea edx, [edx + 0x20]
mov esi, dword [ebp - 0x20d4]
movsd qword [edx - 0x30], xmm0
movsd xmm0, qword [esi]
mov esi, dword [ebp - 0x20e4]
add edi, esi
add dword [ebp - 0x20d4], esi
movsd qword [edx - 0x28], xmm0
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edx - 0x20], xmm0
movsd xmm0, qword [ecx]
add ecx, esi
dec dword [ebp - 0x20dc]
movsd qword [edx - 0x18], xmm0
jne 0x5a6400
mov ecx, dword [ebp - 0x20cc]
mov edi, dword [ebx + 0xc]
mov edx, dword [ebp - 0x20f0]
mov esi, dword [ebp - 0x20ec]
cmp ecx, esi
jge 0x5a6495
mov eax, ecx
lea esi, [edi*8]
imul eax, edi
mov edi, dword [ebx + 8]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x20ec]
jmp 0x5a6480
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edx + ecx*8], xmm0
inc ecx
cmp ecx, edi
jl 0x5a6480
mov dword [ebx + 8], edx
jmp 0x5a64a6
mov edi, dword [ebp - 0x20ec]
mov dword [ebx + 8], edx
jmp 0x5a64a6
mov edi, dword [ebp - 0x20ec]
mov esi, dword [ebx + 0x14]
cmp esi, 1
jbe 0x5a64e7
push dword [ebx + 0x30]
lea ecx, [ebp - 0x1070]
call fcn.0055c080
mov ecx, dword [ebp - 0x1070]
xor eax, eax
cmp dword [ebx + 0x30], eax
jle 0x5a64e4
lea edx, [esi*8]
mov esi, dword [ebx + 0x10]
movsd xmm0, qword [esi]
add esi, edx
movsd qword [ecx + eax*8], xmm0
inc eax
cmp eax, dword [ebx + 0x30]
jl 0x5a64d3
mov dword [ebx + 0x10], ecx
xor eax, eax
mov dword [ebp - 0x20e4], eax
test edi, edi
jle 0x5a763f
mov edi, dword [ebp - 0x2100]
mov edx, dword [ebp - 0x20d0]
mov esi, dword [ebx + 0x30]
movsd xmm4, qword [ebx + 0x40]
movsd xmm5, qword [ebx + 0x38]
shl edx, 3
mov dword [ebp - 0x20fc], edx
lea ecx, [esi - 2]
lea edx, [edi*8]
mov dword [ebp - 0x20d4], ecx
neg edi
mov dword [ebp - 0x20d0], edx
shl edi, 3
mov dword [ebp - 0x2100], edi
mov edi, dword [ebx + 0x10]
sub edi, dword [ebp - 0x20e0]
mov edx, dword [ebx + 8]
movsd xmm3, qword [edx + eax*8]
xor edx, edx
mov eax, dword [ebx + 0x18]
mulsd xmm3, xmm5
test ecx, ecx
js 0x5a65d9
mov esi, dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x20e0]
shl esi, 4
add ecx, 8
mov dword [ebp - 0x20dc], esi
mov esi, dword [ebx + 0x10]
movsd xmm2, qword [edi + ecx]
mulsd xmm2, xmm3
movsd xmm1, qword [esi + edx*8]
mov esi, dword [ebp - 0x20dc]
mulsd xmm1, xmm3
test eax, eax
jne 0x5a659b
movsd qword [ecx - 8], xmm1
movsd qword [ecx], xmm2
jmp 0x5a65c6
movsd xmm0, qword [eax]
mov esi, dword [ebx + 0x1c]
mulsd xmm0, xmm4
addsd xmm0, xmm1
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [eax + esi*8]
mov esi, dword [ebp - 0x20dc]
mulsd xmm0, xmm4
addsd xmm0, xmm2
movsd qword [ecx], xmm0
add edx, 2
add ecx, 0x10
add eax, esi
cmp edx, dword [ebp - 0x20d4]
jle 0x5a6571
mov esi, dword [ebx + 0x30]
cmp edx, esi
jge 0x5a662e
mov ecx, dword [ebx + 0x1c]
shl ecx, 3
sub esi, edx
mov dword [ebp - 0x20f4], ecx
mov ecx, dword [ebp - 0x20e0]
lea ecx, [ecx + edx*8]
mov edx, dword [ebp - 0x20f4]
lea ebx, [ebx]
movsd xmm1, qword [edi + ecx]
mulsd xmm1, xmm3
test eax, eax
jne 0x5a6613
movsd qword [ecx], xmm1
jmp 0x5a6623
movsd xmm0, qword [eax]
mulsd xmm0, xmm4
addsd xmm0, xmm1
movsd qword [ecx], xmm0
add ecx, 8
add eax, edx
dec esi
jne 0x5a6600
mov esi, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x18]
add ecx, dword [ebp - 0x20fc]
mov eax, dword [ebp - 0x20e4]
add edi, dword [ebp - 0x2100]
inc eax
mov dword [ebx + 0x18], ecx
mov ecx, dword [ebp - 0x20e0]
add ecx, dword [ebp - 0x20d0]
mov dword [ebp - 0x20e0], ecx
mov ecx, dword [ebp - 0x20d4]
mov dword [ebp - 0x20e4], eax
cmp eax, dword [ebp - 0x20ec]
jl 0x5a6543
jmp 0x5a763f
test al, 2
je 0x5a6a6b
cmp dword [ebp - 0x20ec], 0
jle 0x5a7672
mov edx, dword [ebp - 0x20d0]
lea eax, [ecx*8]
movsd xmm7, qword [ebx + 0x40]
mov edi, dword [ebx + 0x30]
mov dword [ebp - 0x20d8], eax
lea eax, [edx*8]
mov dword [ebp - 0x2104], eax
cmp dword [ebp - 0x20f0], 0
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x20d0], edx
mov dword [ebp - 0x20cc], eax
mov dword [ebp - 0x20e4], ecx
je 0x5a67f5
xor ecx, ecx
cmp esi, 4
jl 0x5a67a7
mov ecx, dword [ebx + 8]
mov edi, ecx
mov eax, dword [ebp - 0x20f8]
mov esi, dword [ebp - 0x20f8]
mov edx, dword [ebp - 0x20f0]
shl esi, 5
add edx, 0x10
lea eax, [eax + eax*2]
mov dword [ebp - 0x20fc], esi
mov esi, dword [ebp - 0x20f8]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x20f4], eax
mov eax, dword [ebp - 0x20f8]
shl eax, 4
add eax, ecx
lea ecx, [ecx + esi*8]
mov dword [ebp - 0x20d4], ecx
mov ecx, dword [ebp - 0x20e8]
add ecx, 0xfffffffc
shr ecx, 2
inc ecx
mov dword [ebp - 0x20dc], ecx
shl ecx, 2
mov dword [ebp - 0x20d0], ecx
mov ecx, dword [ebp - 0x20f4]
movsd xmm0, qword [edi]
lea edx, [edx + 0x20]
mov esi, dword [ebp - 0x20d4]
movsd qword [edx - 0x30], xmm0
movsd xmm0, qword [esi]
mov esi, dword [ebp - 0x20fc]
add edi, esi
add dword [ebp - 0x20d4], esi
movsd qword [edx - 0x28], xmm0
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edx - 0x20], xmm0
movsd xmm0, qword [ecx]
add ecx, esi
dec dword [ebp - 0x20dc]
movsd qword [edx - 0x18], xmm0
jne 0x5a6751
mov ecx, dword [ebp - 0x20d0]
mov esi, dword [ebp - 0x20e8]
mov edi, dword [ebx + 0x30]
cmp ecx, esi
jge 0x5a67e3
mov edi, dword [ebp - 0x20f8]
mov eax, ecx
imul eax, edi
lea edx, [edi*8]
mov edi, dword [ebx + 8]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x20f0]
lea esp, [esp]
movsd xmm0, qword [eax]
add eax, edx
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, esi
jl 0x5a67d0
mov edi, dword [ebx + 0x30]
mov edx, dword [ebp - 0x20f0]
mov eax, dword [ebp - 0x20cc]
mov dword [ebp - 0x20d0], edx
mov dword [ebp - 0x20d4], 0
test edi, edi
jle 0x5a6a2f
lea ecx, [esi - 4]
mov edi, edx
mov dword [ebp - 0x20dc], ecx
mov ecx, dword [ebx + 0x14]
neg ecx
shl ecx, 3
sub edi, dword [ebx + 0x10]
mov dword [ebp - 0x20f4], ecx
xor ecx, ecx
xorps xmm2, xmm2
xorps xmm4, xmm4
xorps xmm5, xmm5
xorps xmm6, xmm6
cmp dword [ebp - 0x20dc], ecx
jl 0x5a6897
mov esi, dword [ebp - 0x20dc]
add edx, 0x18
add eax, 8
lea esi, [esi + 4]
shr esi, 2
lea ecx, [esi*4]
movsd xmm0, qword [eax - 8]
mulsd xmm0, qword [edx - 0x18]
addsd xmm2, xmm0
movsd xmm0, qword [eax + edi]
mulsd xmm0, qword [eax]
addsd xmm4, xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [edx - 8]
addsd xmm5, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, qword [edx]
add eax, 0x20
add edx, 0x20
addsd xmm6, xmm0
dec esi
jne 0x5a6852
mov esi, dword [ebp - 0x20e8]
mov eax, esi
sub eax, ecx
cmp ecx, esi
jge 0x5a69a3
cmp eax, 2
jb 0x5a68ee
and eax, reloc.WS2_32.dll_accept
jns 0x5a68b4
dec eax
or eax, 0xfffffffe
inc eax
mov edx, esi
xorps xmm3, xmm3
sub edx, eax
mov eax, dword [ebp - 0x20cc]
lea eax, [eax + ecx*8]
movupd xmm1, xmmword [eax + edi]
add ecx, 2
movupd xmm0, xmmword [eax]
add eax, 0x10
mulpd xmm1, xmm0
addpd xmm3, xmm1
cmp ecx, edx
jl 0x5a68c4
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
addsd xmm2, xmm3
cmp ecx, esi
jge 0x5a69a3
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x5a6975
mov eax, dword [ebp - 0x20cc]
sub esi, ecx
mov edx, dword [ebp - 0x20d0]
sub esi, 4
add edx, 0x18
shr esi, 2
lea eax, [eax + ecx*8]
add eax, 8
inc esi
lea edx, [edx + ecx*8]
lea ecx, [ecx + esi*4]
jmp 0x5a6930
movsd xmm1, qword [eax - 8]
mulsd xmm1, qword [edx - 0x18]
movsd xmm0, qword [eax + edi]
mulsd xmm0, qword [eax]
addsd xmm2, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [edx - 8]
addsd xmm2, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, qword [edx]
add eax, 0x20
add edx, 0x20
addsd xmm2, xmm0
dec esi
jne 0x5a6930
mov esi, dword [ebp - 0x20e8]
cmp ecx, esi
jge 0x5a69a3
mov eax, dword [ebp - 0x20cc]
mov edx, esi
sub edx, ecx
lea eax, [eax + ecx*8]
jmp 0x5a6990
movsd xmm0, qword [edi + eax]
mulsd xmm0, qword [eax]
add eax, 8
addsd xmm2, xmm0
dec edx
jne 0x5a6990
mov edx, dword [ebp - 0x20e4]
addsd xmm4, xmm2
mov eax, dword [ebp - 0x20d4]
mov ecx, dword [ebp - 0x20e0]
addsd xmm4, xmm5
addsd xmm4, xmm6
mulsd xmm4, qword [ebx + 0x38]
test edx, edx
jne 0x5a69d1
movsd qword [ecx + eax*8], xmm4
jmp 0x5a69e2
movsd xmm0, qword [edx]
mulsd xmm0, xmm7
addsd xmm0, xmm4
movsd qword [ecx + eax*8], xmm0
mov esi, dword [ebx + 0x14]
inc eax
add edi, dword [ebp - 0x20f4]
mov dword [ebp - 0x20d4], eax
lea ecx, [esi*8]
mov esi, dword [ebx + 0x1c]
add dword [ebp - 0x20cc], ecx
lea ecx, [esi*8]
mov esi, dword [ebp - 0x20e8]
add edx, ecx
cmp eax, dword [ebx + 0x30]
mov eax, dword [ebp - 0x20cc]
mov dword [ebp - 0x20e4], edx
mov edx, dword [ebp - 0x20d0]
jl 0x5a6823
mov edi, dword [ebx + 0x30]
mov eax, dword [ebx + 8]
add eax, dword [ebp - 0x20d8]
mov ecx, dword [ebp - 0x2100]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x18]
add eax, dword [ebp - 0x2104]
mov dword [ebx + 0x18], eax
lea eax, [ecx*8]
add dword [ebp - 0x20e0], eax
dec dword [ebp - 0x20ec]
jne 0x5a66b3
jmp 0x5a7672
mov eax, dword [ebx + 0x30]
shl eax, 3
cmp eax, 0x640
ja 0x5a6f28
cmp dword [ebp - 0x20ec], 0
jle 0x5a7672
mov eax, dword [ebp - 0x20d8]
movsd xmm6, qword [ebx + 0x40]
shl ecx, 3
mov dword [ebp - 0x2110], ecx
lea edx, [eax - 4]
mov dword [ebp - 0x2114], edx
mov edx, dword [ebp - 0x20d0]
lea ecx, [edx*8]
mov edx, dword [ebp - 0x2100]
mov dword [ebp - 0x210c], ecx
lea ecx, [edx*8]
neg edx
mov dword [ebp - 0x2108], ecx
mov ecx, dword [ebx + 0x10]
shl edx, 3
sub ecx, dword [ebp - 0x20e0]
mov dword [ebp - 0x2100], edx
mov dword [ebp - 0x20e4], ecx
jmp 0x5a6af0
cmp dword [ebp - 0x20f0], 0
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov dword [ebp - 0x20d4], esi
mov dword [ebp - 0x20cc], edi
je 0x5a6c28
mov edx, dword [ebp - 0x20e8]
xor ecx, ecx
cmp edx, 4
jl 0x5a6bd9
mov edi, dword [ebp - 0x20f8]
mov esi, edi
mov ecx, dword [ebx + 8]
mov edx, dword [ebp - 0x20f0]
shl esi, 5
add edx, 0x10
lea eax, [edi + edi*2]
mov dword [ebp - 0x20fc], esi
lea eax, [ecx + eax*8]
mov dword [ebp - 0x20f4], eax
mov eax, edi
shl eax, 4
add eax, ecx
lea ecx, [ecx + edi*8]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x20d4], ecx
mov ecx, dword [ebp - 0x20e8]
add ecx, 0xfffffffc
shr ecx, 2
inc ecx
mov dword [ebp - 0x20dc], ecx
shl ecx, 2
mov dword [ebp - 0x20d0], ecx
mov ecx, dword [ebp - 0x20f4]
mov edi, edi
movsd xmm0, qword [edi]
lea edx, [edx + 0x20]
mov esi, dword [ebp - 0x20d4]
movsd qword [edx - 0x30], xmm0
movsd xmm0, qword [esi]
mov esi, dword [ebp - 0x20fc]
add edi, esi
add dword [ebp - 0x20d4], esi
movsd qword [edx - 0x28], xmm0
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edx - 0x20], xmm0
movsd xmm0, qword [ecx]
add ecx, esi
dec dword [ebp - 0x20dc]
movsd qword [edx - 0x18], xmm0
jne 0x5a6b80
mov ecx, dword [ebp - 0x20d0]
mov edi, dword [ebp - 0x20cc]
mov edx, dword [ebp - 0x20e8]
cmp ecx, edx
jge 0x5a6c16
mov edi, dword [ebp - 0x20f8]
mov eax, ecx
imul eax, edi
lea esi, [edi*8]
mov edi, dword [ebx + 8]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x20f0]
jmp 0x5a6c00
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, edx
jl 0x5a6c00
mov edi, dword [ebp - 0x20cc]
mov esi, dword [ebp - 0x20f0]
mov eax, dword [ebp - 0x20d8]
mov dword [ebp - 0x20d4], esi
lea edx, [eax - 4]
xor ecx, ecx
test edx, edx
js 0x5a6d96
mov ecx, dword [ebp - 0x2114]
mov eax, dword [ebx + 0x1c]
add ecx, 4
mov edx, dword [ebp - 0x20e0]
shl eax, 5
add edx, 0x10
shr ecx, 2
mov dword [ebp - 0x20d0], ecx
mov dword [ebp - 0x20f4], eax
mov eax, dword [ebx + 0x10]
shl ecx, 2
mov dword [ebp - 0x20dc], eax
mov dword [ebp - 0x20fc], ecx
mov edi, edi
xor ecx, ecx
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
cmp dword [ebp - 0x20e8], ecx
jle 0x5a6ce7
mov edi, dword [ebx + 0x14]
shl edi, 3
mov dword [ebp - 0x2104], edi
mov edi, dword [ebp - 0x20cc]
jmp 0x5a6ca0
movsd xmm1, qword [esi + ecx*8]
inc ecx
movsd xmm0, qword [eax]
mulsd xmm0, xmm1
addsd xmm2, xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, xmm1
addsd xmm3, xmm0
movsd xmm0, qword [eax + 0x10]
mulsd xmm0, xmm1
addsd xmm4, xmm0
movsd xmm0, qword [eax + 0x18]
add eax, dword [ebp - 0x2104]
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp ecx, dword [ebp - 0x20e8]
jl 0x5a6ca0
mulsd xmm2, xmm7
mulsd xmm3, xmm7
mulsd xmm4, xmm7
mulsd xmm5, xmm7
test edi, edi
jne 0x5a6d10
movsd qword [edx - 0x10], xmm2
movsd qword [edx - 8], xmm3
movsd qword [edx], xmm4
movsd qword [edx + 8], xmm5
jmp 0x5a6d60
movsd xmm0, qword [edi]
mov ecx, dword [ebx + 0x1c]
mov eax, ecx
mulsd xmm0, xmm6
add eax, eax
addsd xmm0, xmm2
movsd qword [edx - 0x10], xmm0
movsd xmm0, qword [edi + ecx*8]
mulsd xmm0, xmm6
addsd xmm0, xmm3
movsd qword [edx - 8], xmm0
movsd xmm0, qword [edi + eax*8]
lea eax, [ecx + ecx*2]
mulsd xmm0, xmm6
addsd xmm0, xmm4
movsd qword [edx], xmm0
movsd xmm0, qword [edi + eax*8]
mulsd xmm0, xmm6
addsd xmm0, xmm5
movsd qword [edx + 8], xmm0
mov eax, dword [ebp - 0x20dc]
add edx, 0x20
add edi, dword [ebp - 0x20f4]
add eax, 0x20
dec dword [ebp - 0x20d0]
mov dword [ebp - 0x20dc], eax
mov dword [ebp - 0x20cc], edi
jne 0x5a6c70
mov ecx, dword [ebp - 0x20fc]
mov eax, dword [ebp - 0x20d8]
cmp ecx, eax
jge 0x5a6ee1
mov edx, dword [ebp - 0x20e0]
sub eax, ecx
mov dword [ebp - 0x20dc], eax
lea esi, [edx + ecx*8]
mov edx, dword [ebp - 0x20e8]
mov dword [ebp - 0x20d0], esi
jmp 0x5a6dc0
mov eax, dword [ebp - 0x20e4]
xor ecx, ecx
add eax, esi
xorps xmm1, xmm1
cmp edx, 4
jl 0x5a6e53
mov edi, dword [ebp - 0x20e8]
mov edx, dword [ebp - 0x20d4]
mov ecx, dword [ebx + 0x14]
add edx, 0x10
lea edi, [edi - 4]
shr edi, 2
inc edi
lea esi, [ecx*8]
lea ecx, [edi*4]
lea ecx, [ecx]
movsd xmm0, qword [edx - 0x10]
mulsd xmm0, qword [eax]
add eax, esi
addsd xmm0, xmm1
movsd xmm1, qword [edx - 8]
mulsd xmm1, qword [eax]
add eax, esi
addsd xmm1, xmm0
movsd xmm0, qword [edx]
mulsd xmm0, qword [eax]
add eax, esi
addsd xmm0, xmm1
movsd xmm1, qword [edx + 8]
mulsd xmm1, qword [eax]
add edx, 0x20
add eax, esi
addsd xmm1, xmm0
dec edi
jne 0x5a6e00
mov edi, dword [ebp - 0x20cc]
mov esi, dword [ebp - 0x20d0]
mov edx, dword [ebp - 0x20e8]
cmp ecx, edx
jge 0x5a6e96
mov edx, dword [ebx + 0x14]
mov edi, dword [ebp - 0x20d4]
mov esi, dword [ebp - 0x20e8]
shl edx, 3
lea esp, [esp]
movsd xmm0, qword [edi + ecx*8]
inc ecx
mulsd xmm0, qword [eax]
add eax, edx
addsd xmm1, xmm0
cmp ecx, esi
jl 0x5a6e70
mov edi, dword [ebp - 0x20cc]
mov esi, dword [ebp - 0x20d0]
mov edx, dword [ebp - 0x20e8]
mulsd xmm1, xmm7
test edi, edi
jne 0x5a6ea4
movsd qword [esi], xmm1
jmp 0x5a6eb4
movsd xmm0, qword [edi]
mulsd xmm0, xmm6
addsd xmm0, xmm1
movsd qword [esi], xmm0
mov ecx, dword [ebx + 0x1c]
add esi, 8
mov dword [ebp - 0x20d0], esi
lea eax, [ecx*8]
add edi, eax
dec dword [ebp - 0x20dc]
mov dword [ebp - 0x20cc], edi
jne 0x5a6dc0
mov eax, dword [ebp - 0x20d8]
mov ecx, dword [ebx + 8]
add ecx, dword [ebp - 0x2110]
mov dword [ebx + 8], ecx
mov ecx, dword [ebx + 0x18]
add ecx, dword [ebp - 0x210c]
mov dword [ebx + 0x18], ecx
mov ecx, dword [ebp - 0x20e0]
add ecx, dword [ebp - 0x2108]
mov dword [ebp - 0x20e0], ecx
mov ecx, dword [ebp - 0x2100]
add dword [ebp - 0x20e4], ecx
dec dword [ebp - 0x20ec]
jne 0x5a6af0
jmp 0x5a7672
push edx
lea ecx, [ebp - 0x1070]
call fcn.005589c0
mov byte [ebp - 4], 2
cmp dword [ebp - 0x20ec], 0
mov edi, dword [ebp - 0x1070]
mov dword [ebp - 0x20cc], edi
jle 0x5a763f
mov edx, dword [ebp - 0x20d0]
mov eax, dword [ebp - 0x20e4]
mov ecx, dword [ebp - 0x2100]
movsd xmm4, qword [ebx + 0x40]
movaps xmm5, xmmword [ebp - 0x2130]
shl eax, 3
mov dword [ebp - 0x2114], eax
lea eax, [edx*8]
mov dword [ebp - 0x2104], eax
lea eax, [ecx*8]
mov dword [ebp - 0x2118], eax
neg ecx
mov eax, edi
shl ecx, 3
sub eax, dword [ebp - 0x20e0]
mov dword [ebp - 0x20d0], eax
mov eax, dword [ebp - 0x20e0]
sub eax, edi
mov dword [ebp - 0x2100], ecx
mov dword [ebp - 0x20dc], eax
lea esp, [esp]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x20e4], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x20f4], eax
mov eax, dword [ebp - 0x20f0]
test eax, eax
je 0x5a70f3
xor ecx, ecx
cmp esi, 4
jl 0x5a70af
mov ecx, dword [ebx + 8]
lea edx, [eax + 0x10]
mov eax, dword [ebp - 0x20f8]
mov edi, ecx
mov esi, dword [ebp - 0x20f8]
shl esi, 5
mov dword [ebp - 0x210c], esi
mov esi, dword [ebp - 0x20f8]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2108], eax
mov eax, dword [ebp - 0x20f8]
shl eax, 4
add eax, ecx
lea ecx, [ecx + esi*8]
mov dword [ebp - 0x20e4], ecx
mov ecx, dword [ebp - 0x20e8]
add ecx, 0xfffffffc
shr ecx, 2
inc ecx
mov dword [ebp - 0x20d4], ecx
shl ecx, 2
mov dword [ebp - 0x2110], ecx
mov ecx, dword [ebp - 0x2108]
movsd xmm0, qword [edi]
lea edx, [edx + 0x20]
mov esi, dword [ebp - 0x20e4]
movsd qword [edx - 0x30], xmm0
movsd xmm0, qword [esi]
mov esi, dword [ebp - 0x210c]
add edi, esi
add dword [ebp - 0x20e4], esi
movsd qword [edx - 0x28], xmm0
movsd xmm0, qword [eax]
add eax, esi
movsd qword [edx - 0x20], xmm0
movsd xmm0, qword [ecx]
add ecx, esi
dec dword [ebp - 0x20d4]
movsd qword [edx - 0x18], xmm0
jne 0x5a7050
mov ecx, dword [ebp - 0x2110]
mov esi, dword [ebp - 0x20e8]
mov edi, dword [ebp - 0x20cc]
mov eax, dword [ebp - 0x20f0]
cmp ecx, esi
jge 0x5a70ed
mov edi, dword [ebp - 0x20f8]
mov eax, ecx
imul eax, edi
lea edx, [edi*8]
mov edi, dword [ebx + 8]
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x20f0]
movsd xmm0, qword [eax]
add eax, edx
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, esi
jl 0x5a70d1
mov edi, dword [ebp - 0x20cc]
mov eax, dword [ebp - 0x20f0]
mov dword [ebp - 0x20e4], eax
mov edx, dword [ebp - 0x20d8]
test edx, edx
jle 0x5a710b
mov ecx, edx
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [ebp - 0x20fc], ecx
test esi, esi
jle 0x5a736b
mov edi, dword [ebx + 0x10]
lea esi, [edx - 4]
mov eax, dword [ebp - 0x20cc]
sub edi, eax
mov dword [ebp - 0x20d4], edi
jmp 0x5a7137
mov eax, dword [ebp - 0x20cc]
mov edx, dword [ebp - 0x20e4]
movsd xmm2, qword [edx + ecx*8]
xor ecx, ecx
mov edx, dword [ebp - 0x20d8]
movsd xmm3, xmm2
unpcklpd xmm3, xmm3
test esi, esi
js 0x5a71ce
lea edx, [edi + 0x18]
add esi, 4
add edx, eax
add eax, 8
shr esi, 2
lea ecx, [esi*4]
nop
movsd xmm1, qword [eax + edi]
movsd xmm0, qword [edx - 0x18]
mulsd xmm1, xmm2
mulsd xmm0, xmm2
addsd xmm1, qword [eax]
addsd xmm0, qword [eax - 8]
movsd qword [eax], xmm1
movsd qword [eax - 8], xmm0
movsd xmm1, qword [edx - 8]
movsd xmm0, qword [edx]
add edx, 0x20
mulsd xmm1, xmm2
mulsd xmm0, xmm2
addsd xmm1, qword [eax + 8]
addsd xmm0, qword [eax + 0x10]
movsd qword [eax + 8], xmm1
movsd qword [eax + 0x10], xmm0
add eax, 0x20
dec esi
jne 0x5a7170
mov edx, dword [ebp - 0x20d8]
mov eax, dword [ebp - 0x20cc]
mov esi, edx
sub esi, ecx
mov dword [ebp - 0x210c], esi
cmp ecx, edx
jge 0x5a733d
cmp esi, 2
jb 0x5a7275
lea edx, [eax + ecx*8]
mov eax, dword [ebp - 0x20cc]
add eax, dword [ebp - 0x20d4]
lea edi, [eax + ecx*8]
mov dword [ebp - 0x2108], edi
mov edi, dword [ebp - 0x20d8]
lea eax, [eax + edi*8]
mov edi, dword [ebp - 0x20d4]
add eax, 0xfffffff8
cmp edx, eax
ja 0x5a723b
mov edi, dword [ebp - 0x20d8]
mov esi, dword [ebp - 0x20cc]
dec edi
lea eax, [esi + edi*8]
mov edi, dword [ebp - 0x20d4]
mov esi, dword [ebp - 0x210c]
cmp eax, dword [ebp - 0x2108]
jae 0x5a726f
and esi, reloc.WS2_32.dll_accept
jns 0x5a7248
dec esi
or esi, 0xfffffffe
inc esi
mov eax, dword [ebp - 0x20d8]
sub eax, esi
movupd xmm1, xmmword [edx + edi]
add ecx, 2
movupd xmm0, xmmword [edx]
mulpd xmm1, xmm3
addpd xmm1, xmm0
movupd xmmword [edx], xmm1
add edx, 0x10
cmp ecx, eax
jl 0x5a7250
mov edx, dword [ebp - 0x20d8]
cmp ecx, edx
jge 0x5a733d
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x5a7308
mov eax, dword [ebp - 0x20cc]
lea edx, [ecx + 3]
mov esi, dword [ebp - 0x20d8]
lea edx, [edi + edx*8]
sub esi, ecx
add edx, eax
sub esi, 4
lea eax, [eax + ecx*8]
shr esi, 2
add eax, 8
inc esi
lea ecx, [ecx + esi*4]
movsd xmm0, qword [edx - 0x18]
mulsd xmm0, xmm2
addsd xmm0, qword [eax - 8]
movsd qword [eax - 8], xmm0
movsd xmm0, qword [eax + edi]
mulsd xmm0, xmm2
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd xmm0, qword [edx - 8]
mulsd xmm0, xmm2
addsd xmm0, qword [eax + 8]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [edx]
add edx, 0x20
mulsd xmm0, xmm2
addsd xmm0, qword [eax + 0x10]
movsd qword [eax + 0x10], xmm0
add eax, 0x20
dec esi
jne 0x5a72b0
mov edx, dword [ebp - 0x20d8]
cmp ecx, edx
jge 0x5a733d
mov eax, dword [ebp - 0x20cc]
sub edx, ecx
lea eax, [eax + ecx*8]
jmp 0x5a7320
movsd xmm0, qword [edi + eax]
mulsd xmm0, xmm2
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
add eax, 8
dec edx
jne 0x5a7320
mov edx, dword [ebp - 0x20d8]
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20fc]
inc ecx
mov dword [ebp - 0x20fc], ecx
lea eax, [esi*8]
add edi, eax
lea esi, [edx - 4]
mov dword [ebp - 0x20d4], edi
cmp ecx, dword [ebp - 0x20e8]
jl 0x5a7131
cmp dword [ebx + 0x18], 0
jne 0x5a74bc
xor ecx, ecx
test edx, edx
jle 0x5a75f1
mov edi, dword [ebp - 0x20cc]
cmp edx, 2
jb 0x5a73f2
mov eax, dword [ebp - 0x20e0]
mov esi, dword [ebp - 0x20d8]
sub eax, 8
lea edx, [eax + edx*8]
lea eax, [esi - 1]
lea eax, [edi + eax*8]
cmp dword [ebp - 0x20e0], eax
ja 0x5a73b2
cmp edx, edi
jae 0x5a73f0
mov eax, esi
and eax, reloc.WS2_32.dll_accept
jns 0x5a73c0
dec eax
or eax, 0xfffffffe
inc eax
mov edx, esi
mov esi, dword [ebp - 0x20dc]
sub edx, eax
mov eax, edi
lea esp, [esp]
movupd xmm0, xmmword [eax]
add ecx, 2
lea eax, [eax + 0x10]
mulpd xmm0, xmm5
movupd xmmword [esi + eax - 0x10], xmm0
cmp ecx, edx
jl 0x5a73d0
mov edx, dword [ebp - 0x20d8]
jmp 0x5a73f2
mov edx, esi
cmp ecx, edx
jge 0x5a75f1
movsd xmm1, qword [ebx + 0x38]
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x5a748a
mov eax, dword [ebp - 0x20e0]
lea edx, [edi + 0x18]
mov esi, dword [ebp - 0x20d8]
lea edx, [edx + ecx*8]
mov edi, dword [ebp - 0x20d0]
sub esi, ecx
sub esi, 4
lea eax, [eax + ecx*8]
shr esi, 2
add eax, 8
inc esi
lea ecx, [ecx + esi*4]
jmp 0x5a7440
movsd xmm0, qword [edx - 0x18]
lea eax, [eax + 0x20]
mulsd xmm0, xmm1
lea edx, [edx + 0x20]
movsd qword [eax - 0x28], xmm0
movsd xmm0, qword [eax + edi - 0x20]
mulsd xmm0, xmm1
movsd qword [eax - 0x20], xmm0
movsd xmm0, qword [edx - 0x28]
mulsd xmm0, xmm1
movsd qword [eax - 0x18], xmm0
movapd xmm0, xmm1
mulsd xmm0, qword [edx - 0x20]
movsd qword [eax - 0x10], xmm0
dec esi
jne 0x5a7440
mov edx, dword [ebp - 0x20d8]
jmp 0x5a7490
mov edi, dword [ebp - 0x20d0]
cmp ecx, edx
jge 0x5a75f1
mov eax, dword [ebp - 0x20e0]
sub edx, ecx
lea eax, [eax + ecx*8]
movsd xmm0, qword [eax + edi]
lea eax, [eax + 8]
mulsd xmm0, xmm1
movsd qword [eax - 8], xmm0
dec edx
jne 0x5a74a3
jmp 0x5a75f1
movsd xmm2, qword [ebx + 0x38]
xor edi, edi
cmp edx, 4
jl 0x5a759f
mov eax, dword [ebx + 0x1c]
lea edi, [edx - 4]
mov ecx, dword [ebp - 0x20cc]
shr edi, 2
add ecx, 0x18
lea esi, [eax*8]
mov eax, dword [ebp - 0x20e0]
add eax, 8
mov dword [ebp - 0x2108], esi
inc edi
lea edx, [edi*4]
mov dword [ebp - 0x210c], edx
mov edx, dword [ebp - 0x20f4]
jmp 0x5a7510
movsd xmm0, qword [edx]
add edx, esi
movsd xmm1, qword [ecx - 0x18]
mov esi, dword [ebp - 0x20d0]
mulsd xmm1, xmm2
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd qword [eax - 8], xmm1
movsd xmm0, qword [edx]
movsd xmm1, qword [esi + eax]
mov esi, dword [ebp - 0x2108]
mulsd xmm1, xmm2
add edx, esi
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm0, qword [edx]
add edx, esi
movsd xmm1, qword [ecx - 8]
mulsd xmm0, xmm4
mulsd xmm1, xmm2
addsd xmm1, xmm0
movsd qword [eax + 8], xmm1
movapd xmm1, xmm2
movsd xmm0, qword [edx]
add edx, esi
mulsd xmm1, qword [ecx]
add ecx, 0x20
mulsd xmm0, xmm4
addsd xmm0, xmm1
movsd qword [eax + 0x10], xmm0
add eax, 0x20
dec edi
jne 0x5a7510
mov edi, dword [ebp - 0x210c]
jmp 0x5a75a5
mov edx, dword [ebp - 0x20f4]
mov ecx, dword [ebp - 0x20d8]
cmp edi, ecx
jge 0x5a75f1
mov eax, dword [ebx + 0x1c]
sub ecx, edi
lea esi, [eax*8]
mov eax, dword [ebp - 0x20e0]
lea eax, [eax + edi*8]
mov edi, dword [ebp - 0x20d0]
lea ebx, [ebx]
movsd xmm1, qword [edi + eax]
movsd xmm0, qword [edx]
add edx, esi
mulsd xmm1, xmm2
mulsd xmm0, xmm4
addsd xmm0, xmm1
movsd qword [eax], xmm0
add eax, 8
dec ecx
jne 0x5a75d0
mov eax, dword [ebx + 8]
add eax, dword [ebp - 0x2114]
mov ecx, dword [ebp - 0x2118]
add dword [ebp - 0x20e0], ecx
add dword [ebp - 0x20dc], ecx
mov esi, dword [ebp - 0x20e8]
mov edi, dword [ebp - 0x20cc]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x18]
add eax, dword [ebp - 0x2104]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x2100]
add dword [ebp - 0x20d0], eax
dec dword [ebp - 0x20ec]
jne 0x5a6fc0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1068]
mov eax, dword [ebp - 0x1070]
cmp eax, ecx
je 0x5a7672
push eax
call fcn.0052ef7e
lea eax, [ebp - 0x1068]
mov dword [ebp - 0x106c], 0x208
mov dword [ebp - 0x1070], eax
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20c0]
mov eax, dword [ebp - 0x20c8]
cmp eax, ecx
je 0x5a76a8
push eax
call fcn.0052ef7e
lea eax, [ebp - 0x20c0]
mov dword [ebp - 0x20c4], 0x208
add esp, 4
mov dword [ebp - 0x20c8], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0052dfa4
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret