140a57ffc:	e8 6f fe ff ff       	call   0x140a57e70
140a58001:	84 c0                	test   %al,%al
140a58003:	75 10                	jne    0x140a58015
140a58005:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140a5800a:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a5800f:	48 83 c4 20          	add    $0x20,%rsp
140a58013:	5f                   	pop    %rdi
140a58014:	c3                   	ret
140a58015:	48 83 7f 18 03       	cmpq   $0x3,0x18(%rdi)
140a5801a:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140a5801f:	76 0b                	jbe    0x140a5802c
140a58021:	48 8b 1f             	mov    (%rdi),%rbx
140a58024:	48 8b cb             	mov    %rbx,%rcx
140a58027:	48 8b fb             	mov    %rbx,%rdi
140a5802a:	eb 06                	jmp    0x140a58032
140a5802c:	48 8b df             	mov    %rdi,%rbx
140a5802f:	48 8b cf             	mov    %rdi,%rcx
140a58032:	48 8b 06             	mov    (%rsi),%rax
140a58035:	48 8d 34 81          	lea    (%rcx,%rax,4),%rsi
140a58039:	48 3b fe             	cmp    %rsi,%rdi
140a5803c:	74 15                	je     0x140a58053
140a5803e:	66 90                	xchg   %ax,%ax
140a58040:	8b 13                	mov    (%rbx),%edx
140a58042:	48 8b cd             	mov    %rbp,%rcx
140a58045:	e8 36 fc ff ff       	call   0x140a57c80
140a5804a:	48 83 c3 04          	add    $0x4,%rbx
140a5804e:	48 3b de             	cmp    %rsi,%rbx
140a58051:	75 ed                	jne    0x140a58040
140a58053:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a58058:	b0 01                	mov    $0x1,%al
140a5805a:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140a5805f:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a58064:	48 83 c4 20          	add    $0x20,%rsp
140a58068:	5f                   	pop    %rdi
140a58069:	c3                   	ret
140a5806a:	cc                   	int3
140a5806b:	cc                   	int3
140a5806c:	cc                   	int3
140a5806d:	cc                   	int3
140a5806e:	cc                   	int3
140a5806f:	cc                   	int3
140a58070:	e9 5b 07 00 00       	jmp    0x140a587d0
140a58075:	cc                   	int3
140a58076:	cc                   	int3
140a58077:	cc                   	int3
140a58078:	cc                   	int3
140a58079:	cc                   	int3
140a5807a:	cc                   	int3
140a5807b:	cc                   	int3
140a5807c:	cc                   	int3
140a5807d:	cc                   	int3
140a5807e:	cc                   	int3
140a5807f:	cc                   	int3
140a58080:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a58085:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a5808a:	57                   	push   %rdi
140a5808b:	48 83 ec 20          	sub    $0x20,%rsp
140a5808f:	48 8b d9             	mov    %rcx,%rbx
140a58092:	66 c1 ca 08          	ror    $0x8,%dx
140a58096:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a5809a:	48 8d 7c 24 30       	lea    0x30(%rsp),%rdi
140a5809f:	66 89 54 24 30       	mov    %dx,0x30(%rsp)
140a580a4:	4c 8b 43 18          	mov    0x18(%rbx),%r8
140a580a8:	48 8b 41 08          	mov    0x8(%rcx),%rax
140a580ac:	4c 8b 09             	mov    (%rcx),%r9
140a580af:	48 8b f0             	mov    %rax,%rsi
140a580b2:	49 2b f1             	sub    %r9,%rsi
140a580b5:	4c 3b c6             	cmp    %rsi,%r8
140a580b8:	75 0e                	jne    0x140a580c8
140a580ba:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140a580c0:	4c 8b c7             	mov    %rdi,%r8
140a580c3:	48 8b d0             	mov    %rax,%rdx
140a580c6:	eb 33                	jmp    0x140a580fb
140a580c8:	49 8d 40 02          	lea    0x2(%r8),%rax
140a580cc:	4b 8d 0c 08          	lea    (%r8,%r9,1),%rcx
140a580d0:	48 3b c6             	cmp    %rsi,%rax
140a580d3:	77 05                	ja     0x140a580da
140a580d5:	66 89 11             	mov    %dx,(%rcx)
140a580d8:	eb 26                	jmp    0x140a58100
140a580da:	49 2b f0             	sub    %r8,%rsi
140a580dd:	48 8b d7             	mov    %rdi,%rdx
140a580e0:	4c 8b c6             	mov    %rsi,%r8
140a580e3:	e8 28 6f 48 00       	call   0x140edf010
140a580e8:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a580ec:	4c 8d 04 37          	lea    (%rdi,%rsi,1),%r8
140a580f0:	49 2b f8             	sub    %r8,%rdi
140a580f3:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a580f7:	4c 8d 4f 02          	lea    0x2(%rdi),%r9
140a580fb:	e8 70 94 fb ff       	call   0x140a11570
140a58100:	48 83 43 18 02       	addq   $0x2,0x18(%rbx)
140a58105:	b0 01                	mov    $0x1,%al
140a58107:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a5810c:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a58111:	48 83 c4 20          	add    $0x20,%rsp
140a58115:	5f                   	pop    %rdi
140a58116:	c3                   	ret
140a58117:	cc                   	int3
140a58118:	cc                   	int3
140a58119:	cc                   	int3
140a5811a:	cc                   	int3
140a5811b:	cc                   	int3
140a5811c:	cc                   	int3
140a5811d:	cc                   	int3
140a5811e:	cc                   	int3
140a5811f:	cc                   	int3
140a58120:	e9 bb fa ff ff       	jmp    0x140a57be0
140a58125:	cc                   	int3
140a58126:	cc                   	int3
140a58127:	cc                   	int3
140a58128:	cc                   	int3
140a58129:	cc                   	int3
140a5812a:	cc                   	int3
140a5812b:	cc                   	int3
140a5812c:	cc                   	int3
140a5812d:	cc                   	int3
140a5812e:	cc                   	int3
140a5812f:	cc                   	int3
140a58130:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a58135:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a5813a:	57                   	push   %rdi
140a5813b:	48 83 ec 20          	sub    $0x20,%rsp
140a5813f:	48 8b d9             	mov    %rcx,%rbx
140a58142:	48 8d 7c 24 30       	lea    0x30(%rsp),%rdi
140a58147:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a5814b:	0f ca                	bswap  %edx
140a5814d:	89 54 24 30          	mov    %edx,0x30(%rsp)
140a58151:	4c 8b 43 18          	mov    0x18(%rbx),%r8
140a58155:	48 8b 41 08          	mov    0x8(%rcx),%rax
140a58159:	4c 8b 09             	mov    (%rcx),%r9
140a5815c:	48 8b f0             	mov    %rax,%rsi
140a5815f:	49 2b f1             	sub    %r9,%rsi
140a58162:	4c 3b c6             	cmp    %rsi,%r8
140a58165:	75 0e                	jne    0x140a58175
140a58167:	41 b9 04 00 00 00    	mov    $0x4,%r9d
140a5816d:	4c 8b c7             	mov    %rdi,%r8
140a58170:	48 8b d0             	mov    %rax,%rdx
140a58173:	eb 32                	jmp    0x140a581a7
140a58175:	49 8d 40 04          	lea    0x4(%r8),%rax
140a58179:	4b 8d 0c 08          	lea    (%r8,%r9,1),%rcx
140a5817d:	48 3b c6             	cmp    %rsi,%rax
140a58180:	77 04                	ja     0x140a58186
140a58182:	89 11                	mov    %edx,(%rcx)
140a58184:	eb 26                	jmp    0x140a581ac
140a58186:	49 2b f0             	sub    %r8,%rsi
140a58189:	48 8b d7             	mov    %rdi,%rdx
140a5818c:	4c 8b c6             	mov    %rsi,%r8
140a5818f:	e8 7c 6e 48 00       	call   0x140edf010
140a58194:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a58198:	4c 8d 04 37          	lea    (%rdi,%rsi,1),%r8
140a5819c:	49 2b f8             	sub    %r8,%rdi
140a5819f:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a581a3:	4c 8d 4f 04          	lea    0x4(%rdi),%r9
140a581a7:	e8 c4 93 fb ff       	call   0x140a11570
140a581ac:	48 83 43 18 04       	addq   $0x4,0x18(%rbx)
140a581b1:	b0 01                	mov    $0x1,%al
140a581b3:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a581b8:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a581bd:	48 83 c4 20          	add    $0x20,%rsp
140a581c1:	5f                   	pop    %rdi
140a581c2:	c3                   	ret
140a581c3:	cc                   	int3
140a581c4:	cc                   	int3
140a581c5:	cc                   	int3
140a581c6:	cc                   	int3
140a581c7:	cc                   	int3
140a581c8:	cc                   	int3
140a581c9:	cc                   	int3
140a581ca:	cc                   	int3
140a581cb:	cc                   	int3
140a581cc:	cc                   	int3
140a581cd:	cc                   	int3
140a581ce:	cc                   	int3
140a581cf:	cc                   	int3
140a581d0:	e9 ab fa ff ff       	jmp    0x140a57c80
140a581d5:	cc                   	int3
140a581d6:	cc                   	int3
140a581d7:	cc                   	int3
140a581d8:	cc                   	int3
140a581d9:	cc                   	int3
140a581da:	cc                   	int3
140a581db:	cc                   	int3
140a581dc:	cc                   	int3
140a581dd:	cc                   	int3
140a581de:	cc                   	int3
140a581df:	cc                   	int3
140a581e0:	40 53                	rex push %rbx
140a581e2:	48 83 ec 20          	sub    $0x20,%rsp
140a581e6:	0f 2e c9             	ucomiss %xmm1,%xmm1
140a581e9:	48 8b d9             	mov    %rcx,%rbx
140a581ec:	0f 9a c0             	setp   %al
140a581ef:	3c 01                	cmp    $0x1,%al
140a581f1:	75 0f                	jne    0x140a58202
140a581f3:	ba ff ff ff ff       	mov    $0xffffffff,%edx
140a581f8:	48 83 c4 20          	add    $0x20,%rsp
140a581fc:	5b                   	pop    %rbx
140a581fd:	e9 7e fa ff ff       	jmp    0x140a57c80
140a58202:	0f 28 c1             	movaps %xmm1,%xmm0
140a58205:	0f 54 05 74 9d 55 00 	andps  0x559d74(%rip),%xmm0        # 0x140fb1f80
140a5820c:	0f 2f 05 3d 6f 62 00 	comiss 0x626f3d(%rip),%xmm0        # 0x14107f150
140a58213:	0f 93 c0             	setae  %al
140a58216:	3c 01                	cmp    $0x1,%al
140a58218:	75 24                	jne    0x140a5823e
140a5821a:	0f 28 c1             	movaps %xmm1,%xmm0
140a5821d:	e8 ea 8e 3d 00       	call   0x140e3110c
140a58222:	85 c0                	test   %eax,%eax
140a58224:	ba 00 00 80 ff       	mov    $0xff800000,%edx
140a58229:	b9 00 00 80 7f       	mov    $0x7f800000,%ecx
140a5822e:	0f 45 d1             	cmovne %ecx,%edx
140a58231:	48 8b cb             	mov    %rbx,%rcx
140a58234:	48 83 c4 20          	add    $0x20,%rsp
140a58238:	5b                   	pop    %rbx
140a58239:	e9 42 fa ff ff       	jmp    0x140a57c80
140a5823e:	0f 28 c1             	movaps %xmm1,%xmm0
140a58241:	0f 57 e4             	xorps  %xmm4,%xmm4
140a58244:	0f 54 05 35 9d 55 00 	andps  0x559d35(%rip),%xmm0        # 0x140fb1f80
140a5824b:	0f 2f e0             	comiss %xmm0,%xmm4
140a5824e:	0f 28 c1             	movaps %xmm1,%xmm0
140a58251:	72 1d                	jb     0x140a58270
140a58253:	e8 b4 8e 3d 00       	call   0x140e3110c
140a58258:	f7 d8                	neg    %eax
140a5825a:	48 8b cb             	mov    %rbx,%rcx
140a5825d:	b8 00 00 00 80       	mov    $0x80000000,%eax
140a58262:	1b d2                	sbb    %edx,%edx
140a58264:	23 d0                	and    %eax,%edx
140a58266:	48 83 c4 20          	add    $0x20,%rsp
140a5826a:	5b                   	pop    %rbx
140a5826b:	e9 10 fa ff ff       	jmp    0x140a57c80
140a58270:	0f 2f e1             	comiss %xmm1,%xmm4
140a58273:	76 07                	jbe    0x140a5827c
140a58275:	0f 57 05 34 64 55 00 	xorps  0x556434(%rip),%xmm0        # 0x140fae6b0
140a5827c:	f3 0f 10 15 c4 6e 62 	movss  0x626ec4(%rip),%xmm2        # 0x14107f148
140a58283:	00
140a58284:	33 c9                	xor    %ecx,%ecx
140a58286:	0f 2f c2             	comiss %xmm2,%xmm0
140a58289:	8b c1                	mov    %ecx,%eax
140a5828b:	72 13                	jb     0x140a582a0
140a5828d:	f3 0f 10 1d 8b de 5e 	movss  0x5ede8b(%rip),%xmm3        # 0x141046120
140a58294:	00
140a58295:	f3 0f 59 c3          	mulss  %xmm3,%xmm0
140a58299:	ff c0                	inc    %eax
140a5829b:	0f 2f c2             	comiss %xmm2,%xmm0
140a5829e:	73 f5                	jae    0x140a58295
140a582a0:	f3 0f 10 15 a4 9c 55 	movss  0x559ca4(%rip),%xmm2        # 0x140fb1f4c
140a582a7:	00
140a582a8:	0f 2f d0             	comiss %xmm0,%xmm2
140a582ab:	76 10                	jbe    0x140a582bd
140a582ad:	ba ff ff ff ff       	mov    $0xffffffff,%edx
140a582b2:	f3 0f 58 c0          	addss  %xmm0,%xmm0
140a582b6:	03 c2                	add    %edx,%eax
140a582b8:	0f 2f d0             	comiss %xmm0,%xmm2
140a582bb:	77 f5                	ja     0x140a582b2
140a582bd:	83 c0 7f             	add    $0x7f,%eax
140a582c0:	f3 0f 5c c2          	subss  %xmm2,%xmm0
140a582c4:	c1 e0 17             	shl    $0x17,%eax
140a582c7:	f3 0f 59 05 7d 6e 62 	mulss  0x626e7d(%rip),%xmm0        # 0x14107f14c
140a582ce:	00
140a582cf:	f3 48 0f 2c d0       	cvttss2si %xmm0,%rdx
140a582d4:	0b d0                	or     %eax,%edx
140a582d6:	b8 00 00 00 80       	mov    $0x80000000,%eax
140a582db:	0f 2f e1             	comiss %xmm1,%xmm4
140a582de:	0f 46 c1             	cmovbe %ecx,%eax
140a582e1:	48 8b cb             	mov    %rbx,%rcx
140a582e4:	0b d0                	or     %eax,%edx
140a582e6:	48 83 c4 20          	add    $0x20,%rsp
140a582ea:	5b                   	pop    %rbx
140a582eb:	e9 90 f9 ff ff       	jmp    0x140a57c80
140a582f0:	40 53                	rex push %rbx
140a582f2:	48 83 ec 20          	sub    $0x20,%rsp
140a582f6:	66 0f 2e c9          	ucomisd %xmm1,%xmm1
140a582fa:	48 8b d9             	mov    %rcx,%rbx
140a582fd:	0f 9a c0             	setp   %al
140a58300:	3c 01                	cmp    $0x1,%al
140a58302:	75 11                	jne    0x140a58315
140a58304:	48 c7 c2 ff ff ff ff 	mov    $0xffffffffffffffff,%rdx
140a5830b:	48 83 c4 20          	add    $0x20,%rsp
140a5830f:	5b                   	pop    %rbx
140a58310:	e9 0b fa ff ff       	jmp    0x140a57d20
140a58315:	0f 28 c1             	movaps %xmm1,%xmm0
140a58318:	0f 54 05 51 44 55 00 	andps  0x554451(%rip),%xmm0        # 0x140fac770
140a5831f:	66 0f 2f 05 39 22 62 	comisd 0x622239(%rip),%xmm0        # 0x14107a560
140a58326:	00
140a58327:	0f 93 c0             	setae  %al
140a5832a:	3c 01                	cmp    $0x1,%al
140a5832c:	75 2f                	jne    0x140a5835d
140a5832e:	0f 28 c1             	movaps %xmm1,%xmm0
140a58331:	e8 be 8d 3d 00       	call   0x140e310f4
140a58336:	85 c0                	test   %eax,%eax
140a58338:	48 b9 00 00 00 00 00 	movabs $0x7ff0000000000000,%rcx
140a5833f:	00 f0 7f
140a58342:	48 ba 00 00 00 00 00 	movabs $0xfff0000000000000,%rdx
140a58349:	00 f0 ff
140a5834c:	48 0f 45 d1          	cmovne %rcx,%rdx
140a58350:	48 8b cb             	mov    %rbx,%rcx
140a58353:	48 83 c4 20          	add    $0x20,%rsp
140a58357:	5b                   	pop    %rbx
140a58358:	e9 c3 f9 ff ff       	jmp    0x140a57d20
140a5835d:	0f 28 c1             	movaps %xmm1,%xmm0
140a58360:	0f 57 e4             	xorps  %xmm4,%xmm4
140a58363:	0f 54 05 06 44 55 00 	andps  0x554406(%rip),%xmm0        # 0x140fac770
140a5836a:	66 0f 2f e0          	comisd %xmm0,%xmm4
140a5836e:	0f 28 c1             	movaps %xmm1,%xmm0
140a58371:	72 24                	jb     0x140a58397
140a58373:	e8 7c 8d 3d 00       	call   0x140e310f4
140a58378:	f7 d8                	neg    %eax
140a5837a:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
140a58381:	00 00 80
140a58384:	48 1b d2             	sbb    %rdx,%rdx
140a58387:	48 23 d1             	and    %rcx,%rdx
140a5838a:	48 8b cb             	mov    %rbx,%rcx
140a5838d:	48 83 c4 20          	add    $0x20,%rsp
140a58391:	5b                   	pop    %rbx
140a58392:	e9 89 f9 ff ff       	jmp    0x140a57d20
140a58397:	66 0f 2f e1          	comisd %xmm1,%xmm4
140a5839b:	76 07                	jbe    0x140a583a4
140a5839d:	0f 57 05 fc 62 55 00 	xorps  0x5562fc(%rip),%xmm0        # 0x140fae6a0
140a583a4:	f2 0f 10 15 b4 39 5a 	movsd  0x5a39b4(%rip),%xmm2        # 0x140ffbd60
140a583ab:	00
140a583ac:	45 33 c9             	xor    %r9d,%r9d
140a583af:	66 0f 2f c2          	comisd %xmm2,%xmm0
140a583b3:	41 8b c1             	mov    %r9d,%eax
140a583b6:	72 15                	jb     0x140a583cd
140a583b8:	f2 0f 10 1d 10 9a 58 	movsd  0x589a10(%rip),%xmm3        # 0x140fe1dd0
140a583bf:	00
140a583c0:	f2 0f 59 c3          	mulsd  %xmm3,%xmm0
140a583c4:	48 ff c0             	inc    %rax
140a583c7:	66 0f 2f c2          	comisd %xmm2,%xmm0
140a583cb:	73 f3                	jae    0x140a583c0
140a583cd:	f2 0f 10 15 7b 9b 55 	movsd  0x559b7b(%rip),%xmm2        # 0x140fb1f50
140a583d4:	00
140a583d5:	66 0f 2f d0          	comisd %xmm0,%xmm2
140a583d9:	76 12                	jbe    0x140a583ed
140a583db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140a583e0:	f2 0f 58 c0          	addsd  %xmm0,%xmm0
140a583e4:	48 ff c8             	dec    %rax
140a583e7:	66 0f 2f d0          	comisd %xmm0,%xmm2
140a583eb:	77 f3                	ja     0x140a583e0
140a583ed:	f2 0f 5c c2          	subsd  %xmm2,%xmm0
140a583f1:	45 33 c0             	xor    %r8d,%r8d
140a583f4:	f2 0f 10 15 5c 64 55 	movsd  0x55645c(%rip),%xmm2        # 0x140fae858
140a583fb:	00
140a583fc:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
140a58403:	00 00 80
140a58406:	f2 0f 59 05 1a b7 5f 	mulsd  0x5fb71a(%rip),%xmm0        # 0x141053b28
140a5840d:	00
140a5840e:	66 0f 2f c2          	comisd %xmm2,%xmm0
140a58412:	72 0d                	jb     0x140a58421
140a58414:	f2 0f 5c c2          	subsd  %xmm2,%xmm0
140a58418:	66 0f 2f c2          	comisd %xmm2,%xmm0
140a5841c:	73 03                	jae    0x140a58421
140a5841e:	4c 8b c1             	mov    %rcx,%r8