180051f5a:	89 43 08             	mov    %eax,0x8(%rbx)
180051f5d:	e8 06 18 ff ff       	call   0x180043768
180051f62:	41 b9 00 00 01 00    	mov    $0x10000,%r9d
180051f68:	85 c0                	test   %eax,%eax
180051f6a:	0f 88 95 00 00 00    	js     0x180052005
180051f70:	44 89 4b 58          	mov    %r9d,0x58(%rbx)
180051f74:	33 d2                	xor    %edx,%edx
180051f76:	c7 43 50 50 00 00 00 	movl   $0x50,0x50(%rbx)
180051f7d:	44 89 7b 5c          	mov    %r15d,0x5c(%rbx)
180051f81:	c7 43 60 32 00 00 00 	movl   $0x32,0x60(%rbx)
180051f88:	c7 43 54 20 03 00 00 	movl   $0x320,0x54(%rbx)
180051f8f:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180051f93:	66 c1 e0 04          	shl    $0x4,%ax
180051f97:	44 0f b7 c0          	movzwl %ax,%r8d
180051f9b:	44 89 8b 90 00 00 00 	mov    %r9d,0x90(%rbx)
180051fa2:	44 89 83 88 00 00 00 	mov    %r8d,0x88(%rbx)
180051fa9:	44 89 bb 94 00 00 00 	mov    %r15d,0x94(%rbx)
180051fb0:	41 8d 48 27          	lea    0x27(%r8),%ecx
180051fb4:	8b c1                	mov    %ecx,%eax
180051fb6:	41 f7 f0             	div    %r8d
180051fb9:	8b c2                	mov    %edx,%eax
180051fbb:	33 d2                	xor    %edx,%edx
180051fbd:	2b c1                	sub    %ecx,%eax
180051fbf:	05 00 10 00 00       	add    $0x1000,%eax
180051fc4:	41 f7 f0             	div    %r8d
180051fc7:	89 83 98 00 00 00    	mov    %eax,0x98(%rbx)
180051fcd:	c1 e0 04             	shl    $0x4,%eax
180051fd0:	89 83 8c 00 00 00    	mov    %eax,0x8c(%rbx)
180051fd6:	8b c6                	mov    %esi,%eax
180051fd8:	85 c0                	test   %eax,%eax
180051fda:	78 29                	js     0x180052005
180051fdc:	44 89 8b c8 00 00 00 	mov    %r9d,0xc8(%rbx)
180051fe3:	44 89 b3 c0 00 00 00 	mov    %r14d,0xc0(%rbx)
180051fea:	44 89 bb cc 00 00 00 	mov    %r15d,0xcc(%rbx)
180051ff1:	c7 83 d0 00 00 00 3f 	movl   $0x3f,0xd0(%rbx)
180051ff8:	00 00 00
180051ffb:	c7 83 c4 00 00 00 f0 	movl   $0x3f0,0xc4(%rbx)
180052002:	03 00 00
180052005:	48 83 c4 58          	add    $0x58,%rsp
180052009:	41 5f                	pop    %r15
18005200b:	41 5e                	pop    %r14
18005200d:	41 5d                	pop    %r13
18005200f:	41 5c                	pop    %r12
180052011:	5f                   	pop    %rdi
180052012:	5e                   	pop    %rsi
180052013:	5d                   	pop    %rbp
180052014:	5b                   	pop    %rbx
180052015:	c3                   	ret
180052016:	cc                   	int3
180052017:	cc                   	int3
180052018:	48 8b 41 08          	mov    0x8(%rcx),%rax
18005201c:	48 8b 40 70          	mov    0x70(%rax),%rax
180052020:	c3                   	ret
180052021:	cc                   	int3
180052022:	cc                   	int3
180052023:	cc                   	int3
180052024:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180052029:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18005202e:	44 89 44 24 18       	mov    %r8d,0x18(%rsp)
180052033:	55                   	push   %rbp
180052034:	56                   	push   %rsi
180052035:	57                   	push   %rdi
180052036:	41 54                	push   %r12
180052038:	41 55                	push   %r13
18005203a:	41 56                	push   %r14
18005203c:	41 57                	push   %r15
18005203e:	48 83 ec 40          	sub    $0x40,%rsp
180052042:	33 c0                	xor    %eax,%eax
180052044:	44 8b e2             	mov    %edx,%r12d
180052047:	89 44 24 20          	mov    %eax,0x20(%rsp)
18005204b:	45 33 d2             	xor    %r10d,%r10d
18005204e:	48 8b f9             	mov    %rcx,%rdi
180052051:	85 c0                	test   %eax,%eax
180052053:	75 6c                	jne    0x1800520c1
180052055:	45 33 c0             	xor    %r8d,%r8d
180052058:	44 38 47 2b          	cmp    %r8b,0x2b(%rdi)
18005205c:	76 4e                	jbe    0x1800520ac
18005205e:	48 8d 84 24 90 00 00 	lea    0x90(%rsp),%rax
180052065:	00
180052066:	44 0f a3 00          	bt     %r8d,(%rax)
18005206a:	73 30                	jae    0x18005209c
18005206c:	41 8b d4             	mov    %r12d,%edx
18005206f:	48 8b cf             	mov    %rdi,%rcx
180052072:	e8 6d f4 ff ff       	call   0x1800514e4
180052077:	84 c0                	test   %al,%al
180052079:	74 21                	je     0x18005209c
18005207b:	45 85 d2             	test   %r10d,%r10d
18005207e:	75 13                	jne    0x180052093
180052080:	41 8b d4             	mov    %r12d,%edx
180052083:	48 8b cf             	mov    %rdi,%rcx
180052086:	e8 c5 f2 ff ff       	call   0x180051350
18005208b:	0f b7 08             	movzwl (%rax),%ecx
18005208e:	f6 c1 01             	test   $0x1,%cl
180052091:	75 09                	jne    0x18005209c
180052093:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
180052098:	44 0f ab 00          	bts    %r8d,(%rax)
18005209c:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
1800520a0:	41 ff c0             	inc    %r8d
1800520a3:	44 3b c0             	cmp    %eax,%r8d
1800520a6:	72 b6                	jb     0x18005205e
1800520a8:	8b 44 24 20          	mov    0x20(%rsp),%eax
1800520ac:	41 ff c2             	inc    %r10d
1800520af:	41 83 fa 02          	cmp    $0x2,%r10d
1800520b3:	72 9c                	jb     0x180052051
1800520b5:	85 c0                	test   %eax,%eax
1800520b7:	75 08                	jne    0x1800520c1
1800520b9:	83 cb ff             	or     $0xffffffff,%ebx
1800520bc:	e9 32 01 00 00       	jmp    0x1800521f3
1800520c1:	83 cb ff             	or     $0xffffffff,%ebx
1800520c4:	89 44 24 28          	mov    %eax,0x28(%rsp)
1800520c8:	45 33 ed             	xor    %r13d,%r13d
1800520cb:	48 c7 44 24 20 00 00 	movq   $0x800000,0x20(%rsp)
1800520d2:	80 00
1800520d4:	45 33 db             	xor    %r11d,%r11d
1800520d7:	33 ed                	xor    %ebp,%ebp
1800520d9:	49 be ff ff ff ff ff 	movabs $0x7fffffffffffffff,%r14
1800520e0:	ff ff 7f
1800520e3:	8b f3                	mov    %ebx,%esi
1800520e5:	44 8b fb             	mov    %ebx,%r15d
1800520e8:	40 38 6f 2b          	cmp    %bpl,0x2b(%rdi)
1800520ec:	0f 86 be 00 00 00    	jbe    0x1800521b0
1800520f2:	48 8b 5c 24 20       	mov    0x20(%rsp),%rbx
1800520f7:	48 8d 44 24 28       	lea    0x28(%rsp),%rax
1800520fc:	0f a3 28             	bt     %ebp,(%rax)
1800520ff:	0f 83 9a 00 00 00    	jae    0x18005219f
180052105:	44 8b c5             	mov    %ebp,%r8d
180052108:	41 8b d4             	mov    %r12d,%edx
18005210b:	48 8b cf             	mov    %rdi,%rcx
18005210e:	e8 3d f2 ff ff       	call   0x180051350
180052113:	48 8b d0             	mov    %rax,%rdx
180052116:	e8 a1 f2 ff ff       	call   0x1800513bc
18005211b:	48 8b c8             	mov    %rax,%rcx
18005211e:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180052123:	48 8b 00             	mov    (%rax),%rax
180052126:	48 8b 40 58          	mov    0x58(%rax),%rax
18005212a:	ff d0                	call   *%rax
18005212c:	0f 1f 00             	nopl   (%rax)
18005212f:	4c 8b d8             	mov    %rax,%r11
180052132:	48 85 c0             	test   %rax,%rax
180052135:	74 04                	je     0x18005213b
180052137:	4c 8b 68 08          	mov    0x8(%rax),%r13
18005213b:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
180052140:	4d 3b ee             	cmp    %r14,%r13
180052143:	44 8b cd             	mov    %ebp,%r9d
180052146:	49 8b cd             	mov    %r13,%rcx
180052149:	49 0f 4d ce          	cmovge %r14,%rcx
18005214d:	44 0f 4d ce          	cmovge %esi,%r9d
180052151:	4c 8b f1             	mov    %rcx,%r14
180052154:	4c 8b d1             	mov    %rcx,%r10
180052157:	8b 80 8c 01 00 00    	mov    0x18c(%rax),%eax
18005215d:	41 8b f1             	mov    %r9d,%esi
180052160:	83 f8 02             	cmp    $0x2,%eax
180052163:	74 3a                	je     0x18005219f
180052165:	83 f8 04             	cmp    $0x4,%eax
180052168:	74 35                	je     0x18005219f
18005216a:	44 8b c5             	mov    %ebp,%r8d
18005216d:	41 8b d4             	mov    %r12d,%edx
180052170:	48 8b cf             	mov    %rdi,%rcx
180052173:	e8 d8 f1 ff ff       	call   0x180051350
180052178:	48 8b 48 18          	mov    0x18(%rax),%rcx
18005217c:	48 8b 84 24 98 00 00 	mov    0x98(%rsp),%rax
180052183:	00
180052184:	48 3b c8             	cmp    %rax,%rcx
180052187:	76 05                	jbe    0x18005218e
180052189:	48 2b c8             	sub    %rax,%rcx
18005218c:	eb 06                	jmp    0x180052194
18005218e:	48 2b c1             	sub    %rcx,%rax
180052191:	48 8b c8             	mov    %rax,%rcx
180052194:	48 3b cb             	cmp    %rbx,%rcx
180052197:	7d 06                	jge    0x18005219f
180052199:	48 8b d9             	mov    %rcx,%rbx
18005219c:	44 8b fd             	mov    %ebp,%r15d
18005219f:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
1800521a3:	ff c5                	inc    %ebp
1800521a5:	3b e8                	cmp    %eax,%ebp
1800521a7:	0f 82 4a ff ff ff    	jb     0x1800520f7
1800521ad:	83 cb ff             	or     $0xffffffff,%ebx
1800521b0:	44 3b fb             	cmp    %ebx,%r15d
1800521b3:	74 3c                	je     0x1800521f1
1800521b5:	4d 85 db             	test   %r11,%r11
1800521b8:	74 37                	je     0x1800521f1
1800521ba:	45 8b c7             	mov    %r15d,%r8d
1800521bd:	41 8b d4             	mov    %r12d,%edx
1800521c0:	48 8b cf             	mov    %rdi,%rcx
1800521c3:	e8 88 f1 ff ff       	call   0x180051350
1800521c8:	48 8b d0             	mov    %rax,%rdx
1800521cb:	e8 ec f1 ff ff       	call   0x1800513bc
1800521d0:	48 8b c8             	mov    %rax,%rcx
1800521d3:	48 8b 00             	mov    (%rax),%rax
1800521d6:	48 8b 40 58          	mov    0x58(%rax),%rax
1800521da:	ff d0                	call   *%rax
1800521dc:	0f 1f 00             	nopl   (%rax)
1800521df:	48 8b 48 08          	mov    0x8(%rax),%rcx
1800521e3:	49 2b ce             	sub    %r14,%rcx
1800521e6:	48 81 f9 00 00 80 00 	cmp    $0x800000,%rcx
1800521ed:	41 0f 4c f7          	cmovl  %r15d,%esi
1800521f1:	8b de                	mov    %esi,%ebx
1800521f3:	8b c3                	mov    %ebx,%eax
1800521f5:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
1800521fc:	00
1800521fd:	48 83 c4 40          	add    $0x40,%rsp
180052201:	41 5f                	pop    %r15
180052203:	41 5e                	pop    %r14
180052205:	41 5d                	pop    %r13
180052207:	41 5c                	pop    %r12
180052209:	5f                   	pop    %rdi
18005220a:	5e                   	pop    %rsi
18005220b:	5d                   	pop    %rbp
18005220c:	c3                   	ret
18005220d:	cc                   	int3
18005220e:	cc                   	int3
18005220f:	cc                   	int3
180052210:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180052215:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18005221a:	57                   	push   %rdi
18005221b:	48 83 ec 20          	sub    $0x20,%rsp
18005221f:	33 db                	xor    %ebx,%ebx
180052221:	48 8b fa             	mov    %rdx,%rdi
180052224:	f6 41 28 02          	testb  $0x2,0x28(%rcx)
180052228:	48 8b f1             	mov    %rcx,%rsi
18005222b:	0f 84 99 00 00 00    	je     0x1800522ca
180052231:	48 8d 82 c0 00 00 00 	lea    0xc0(%rdx),%rax
180052238:	48 39 00             	cmp    %rax,(%rax)
18005223b:	0f 85 89 00 00 00    	jne    0x1800522ca
180052241:	4c 8b 4a 10          	mov    0x10(%rdx),%r9
180052245:	eb 10                	jmp    0x180052257
180052247:	49 8d 81 c0 00 00 00 	lea    0xc0(%r9),%rax
18005224e:	48 39 00             	cmp    %rax,(%rax)
180052251:	75 77                	jne    0x1800522ca
180052253:	4d 8b 49 10          	mov    0x10(%r9),%r9
180052257:	4d 85 c9             	test   %r9,%r9
18005225a:	75 eb                	jne    0x180052247
18005225c:	4d 85 c0             	test   %r8,%r8
18005225f:	75 28                	jne    0x180052289
180052261:	b9 e0 00 00 00       	mov    $0xe0,%ecx
180052266:	e8 a9 46 ff ff       	call   0x180046914
18005226b:	48 85 c0             	test   %rax,%rax
18005226e:	74 0a                	je     0x18005227a
180052270:	48 8b c8             	mov    %rax,%rcx
180052273:	e8 f0 4c ff ff       	call   0x180046f68
180052278:	eb 03                	jmp    0x18005227d
18005227a:	48 8b c3             	mov    %rbx,%rax
18005227d:	48 85 c0             	test   %rax,%rax
180052280:	75 0a                	jne    0x18005228c
180052282:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
180052287:	eb 41                	jmp    0x1800522ca
180052289:	49 8b 00             	mov    (%r8),%rax
18005228c:	48 8b 4f 78          	mov    0x78(%rdi),%rcx
180052290:	48 8b d0             	mov    %rax,%rdx
180052293:	48 89 48 78          	mov    %rcx,0x78(%rax)
180052297:	8b 8f 80 00 00 00    	mov    0x80(%rdi),%ecx
18005229d:	89 88 80 00 00 00    	mov    %ecx,0x80(%rax)
1800522a3:	8b 8f 84 00 00 00    	mov    0x84(%rdi),%ecx
1800522a9:	89 88 84 00 00 00    	mov    %ecx,0x84(%rax)
1800522af:	8b 8f 88 00 00 00    	mov    0x88(%rdi),%ecx
1800522b5:	89 88 88 00 00 00    	mov    %ecx,0x88(%rax)
1800522bb:	48 8b cf             	mov    %rdi,%rcx
1800522be:	48 89 b0 d8 00 00 00 	mov    %rsi,0xd8(%rax)
1800522c5:	e8 e2 4d ff ff       	call   0x1800470ac
1800522ca:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1800522cf:	8b c3                	mov    %ebx,%eax
1800522d1:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800522d6:	48 83 c4 20          	add    $0x20,%rsp
1800522da:	5f                   	pop    %rdi
1800522db:	c3                   	ret
1800522dc:	cc                   	int3
1800522dd:	cc                   	int3
1800522de:	cc                   	int3
1800522df:	cc                   	int3
1800522e0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800522e5:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1800522ea:	57                   	push   %rdi
1800522eb:	48 83 ec 20          	sub    $0x20,%rsp
1800522ef:	48 8b 72 78          	mov    0x78(%rdx),%rsi
1800522f3:	48 8b d9             	mov    %rcx,%rbx
1800522f6:	8a 49 2a             	mov    0x2a(%rcx),%cl
1800522f9:	48 8b c6             	mov    %rsi,%rax
1800522fc:	48 d3 e8             	shr    %cl,%rax
1800522ff:	40 32 ff             	xor    %dil,%dil
180052302:	0f b6 c0             	movzbl %al,%eax
180052305:	4c 8b d2             	mov    %rdx,%r10
180052308:	4c 8d 04 40          	lea    (%rax,%rax,2),%r8
18005230c:	48 8b 43 38          	mov    0x38(%rbx),%rax
180052310:	4e 8d 0c c0          	lea    (%rax,%r8,8),%r9
180052314:	4d 8b 59 08          	mov    0x8(%r9),%r11
180052318:	49 8b d3             	mov    %r11,%rdx
18005231b:	4d 3b d9             	cmp    %r9,%r11
18005231e:	74 56                	je     0x180052376
180052320:	0f b7 5b 28          	movzwl 0x28(%rbx),%ebx
180052324:	66 83 e3 04          	and    $0x4,%bx
180052328:	66 85 db             	test   %bx,%bx
18005232b:	75 0c                	jne    0x180052339
18005232d:	41 8b 82 84 00 00 00 	mov    0x84(%r10),%eax
180052334:	39 42 c4             	cmp    %eax,-0x3c(%rdx)
180052337:	75 2f                	jne    0x180052368
180052339:	4c 8b 42 b8          	mov    -0x48(%rdx),%r8
18005233d:	4c 3b c6             	cmp    %rsi,%r8
180052340:	76 12                	jbe    0x180052354
180052342:	41 8b 82 80 00 00 00 	mov    0x80(%r10),%eax
180052349:	4c 2b c6             	sub    %rsi,%r8
18005234c:	4c 3b c0             	cmp    %rax,%r8
18005234f:	0f 92 c0             	setb   %al
180052352:	eb 10                	jmp    0x180052364
180052354:	8b 42 c0             	mov    -0x40(%rdx),%eax
180052357:	48 8b ce             	mov    %rsi,%rcx
18005235a:	49 2b c8             	sub    %r8,%rcx
18005235d:	48 3b c8             	cmp    %rax,%rcx
180052360:	73 06                	jae    0x180052368
180052362:	b0 01                	mov    $0x1,%al
180052364:	84 c0                	test   %al,%al
180052366:	75 0b                	jne    0x180052373
180052368:	48 8b 52 08          	mov    0x8(%rdx),%rdx
18005236c:	49 3b d1             	cmp    %r9,%rdx
18005236f:	74 05                	je     0x180052376
180052371:	eb b5                	jmp    0x180052328
180052373:	40 b7 01             	mov    $0x1,%dil
180052376:	49 8b 42 10          	mov    0x10(%r10),%rax
18005237a:	48 05 c0 00 00 00    	add    $0xc0,%rax
180052380:	4d 39 0b             	cmp    %r9,(%r11)
180052383:	74 07                	je     0x18005238c
180052385:	b9 03 00 00 00       	mov    $0x3,%ecx
18005238a:	cd 29                	int    $0x29
18005238c:	4c 89 08             	mov    %r9,(%rax)
18005238f:	4c 89 58 08          	mov    %r11,0x8(%rax)
180052393:	49 89 03             	mov    %rax,(%r11)
180052396:	49 89 41 08          	mov    %rax,0x8(%r9)
18005239a:	40 84 ff             	test   %dil,%dil
18005239d:	75 08                	jne    0x1800523a7
18005239f:	49 8b ca             	mov    %r10,%rcx
1800523a2:	e8 11 4e ff ff       	call   0x1800471b8
1800523a7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800523ac:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1800523b1:	48 83 c4 20          	add    $0x20,%rsp
1800523b5:	5f                   	pop    %rdi
1800523b6:	c3                   	ret
1800523b7:	cc                   	int3
1800523b8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800523bd:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1800523c2:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
1800523c7:	55                   	push   %rbp
1800523c8:	41 56                	push   %r14
1800523ca:	41 57                	push   %r15
1800523cc:	48 8b ec             	mov    %rsp,%rbp
1800523cf:	48 83 ec 30          	sub    $0x30,%rsp
1800523d3:	48 8d 45 f0          	lea    -0x10(%rbp),%rax
1800523d7:	48 8b fa             	mov    %rdx,%rdi
1800523da:	4c 8d 82 c0 00 00 00 	lea    0xc0(%rdx),%r8
1800523e1:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
1800523e5:	4d 8b 08             	mov    (%r8),%r9
1800523e8:	48 8d 45 f0          	lea    -0x10(%rbp),%rax