41714c:	89 46 08             	mov    %eax,0x8(%esi)
41714f:	5e                   	pop    %esi
417150:	5d                   	pop    %ebp
417151:	c2 0c 00             	ret    $0xc
417154:	55                   	push   %ebp
417155:	8b ec                	mov    %esp,%ebp
417157:	56                   	push   %esi
417158:	8b f1                	mov    %ecx,%esi
41715a:	83 3e 00             	cmpl   $0x0,(%esi)
41715d:	74 18                	je     0x417177
41715f:	8b 46 08             	mov    0x8(%esi),%eax
417162:	2b 06                	sub    (%esi),%eax
417164:	6a 0c                	push   $0xc
417166:	59                   	pop    %ecx
417167:	99                   	cltd
417168:	f7 f9                	idiv   %ecx
41716a:	6b c0 0c             	imul   $0xc,%eax,%eax
41716d:	50                   	push   %eax
41716e:	ff 36                	push   (%esi)
417170:	e8 b5 c3 fe ff       	call   0x40352a
417175:	59                   	pop    %ecx
417176:	59                   	pop    %ecx
417177:	6b 45 0c 0c          	imul   $0xc,0xc(%ebp),%eax
41717b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41717e:	89 0e                	mov    %ecx,(%esi)
417180:	03 c1                	add    %ecx,%eax
417182:	89 46 04             	mov    %eax,0x4(%esi)
417185:	6b 45 10 0c          	imul   $0xc,0x10(%ebp),%eax
417189:	03 c1                	add    %ecx,%eax
41718b:	89 46 08             	mov    %eax,0x8(%esi)
41718e:	5e                   	pop    %esi
41718f:	5d                   	pop    %ebp
417190:	c2 0c 00             	ret    $0xc
417193:	55                   	push   %ebp
417194:	8b ec                	mov    %esp,%ebp
417196:	56                   	push   %esi
417197:	8b f1                	mov    %ecx,%esi
417199:	83 3e 00             	cmpl   $0x0,(%esi)
41719c:	74 18                	je     0x4171b6
41719e:	8b 46 08             	mov    0x8(%esi),%eax
4171a1:	2b 06                	sub    (%esi),%eax
4171a3:	6a 0c                	push   $0xc
4171a5:	59                   	pop    %ecx
4171a6:	99                   	cltd
4171a7:	f7 f9                	idiv   %ecx
4171a9:	6b c0 0c             	imul   $0xc,%eax,%eax
4171ac:	50                   	push   %eax
4171ad:	ff 36                	push   (%esi)
4171af:	e8 76 c3 fe ff       	call   0x40352a
4171b4:	59                   	pop    %ecx
4171b5:	59                   	pop    %ecx
4171b6:	6b 45 0c 0c          	imul   $0xc,0xc(%ebp),%eax
4171ba:	8b 4d 08             	mov    0x8(%ebp),%ecx
4171bd:	89 0e                	mov    %ecx,(%esi)
4171bf:	03 c1                	add    %ecx,%eax
4171c1:	89 46 04             	mov    %eax,0x4(%esi)
4171c4:	6b 45 10 0c          	imul   $0xc,0x10(%ebp),%eax
4171c8:	03 c1                	add    %ecx,%eax
4171ca:	89 46 08             	mov    %eax,0x8(%esi)
4171cd:	5e                   	pop    %esi
4171ce:	5d                   	pop    %ebp
4171cf:	c2 0c 00             	ret    $0xc
4171d2:	55                   	push   %ebp
4171d3:	8b ec                	mov    %esp,%ebp
4171d5:	56                   	push   %esi
4171d6:	57                   	push   %edi
4171d7:	8b f9                	mov    %ecx,%edi
4171d9:	8b 37                	mov    (%edi),%esi
4171db:	85 f6                	test   %esi,%esi
4171dd:	74 2a                	je     0x417209
4171df:	53                   	push   %ebx
4171e0:	8b 5f 04             	mov    0x4(%edi),%ebx
4171e3:	3b f3                	cmp    %ebx,%esi
4171e5:	74 10                	je     0x4171f7
4171e7:	8b ce                	mov    %esi,%ecx
4171e9:	e8 82 0b 00 00       	call   0x417d70
4171ee:	83 c6 08             	add    $0x8,%esi
4171f1:	3b f3                	cmp    %ebx,%esi
4171f3:	75 f2                	jne    0x4171e7
4171f5:	8b 37                	mov    (%edi),%esi
4171f7:	8b 47 08             	mov    0x8(%edi),%eax
4171fa:	2b c6                	sub    %esi,%eax
4171fc:	83 e0 f8             	and    $0xfffffff8,%eax
4171ff:	50                   	push   %eax
417200:	56                   	push   %esi
417201:	e8 24 c3 fe ff       	call   0x40352a
417206:	59                   	pop    %ecx
417207:	59                   	pop    %ecx
417208:	5b                   	pop    %ebx
417209:	8b 4d 08             	mov    0x8(%ebp),%ecx
41720c:	8b 45 0c             	mov    0xc(%ebp),%eax
41720f:	89 0f                	mov    %ecx,(%edi)
417211:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
417214:	89 47 04             	mov    %eax,0x4(%edi)
417217:	8b 45 10             	mov    0x10(%ebp),%eax
41721a:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
41721d:	89 47 08             	mov    %eax,0x8(%edi)
417220:	5f                   	pop    %edi
417221:	5e                   	pop    %esi
417222:	5d                   	pop    %ebp
417223:	c2 0c 00             	ret    $0xc
417226:	6a 00                	push   $0x0
417228:	b8 85 f2 48 00       	mov    $0x48f285,%eax
41722d:	e8 18 88 02 00       	call   0x43fa4a
417232:	8b 7d 14             	mov    0x14(%ebp),%edi
417235:	8b 5d 10             	mov    0x10(%ebp),%ebx
417238:	8b 37                	mov    (%edi),%esi
41723a:	85 f6                	test   %esi,%esi
41723c:	74 1b                	je     0x417259
41723e:	8b c6                	mov    %esi,%eax
417240:	8b f0                	mov    %eax,%esi
417242:	3b 18                	cmp    (%eax),%ebx
417244:	73 0b                	jae    0x417251
417246:	8d 78 10             	lea    0x10(%eax),%edi
417249:	8b 37                	mov    (%edi),%esi
41724b:	8b c6                	mov    %esi,%eax
41724d:	85 f6                	test   %esi,%esi
41724f:	75 ef                	jne    0x417240
417251:	85 f6                	test   %esi,%esi
417253:	74 04                	je     0x417259
417255:	3b 1e                	cmp    (%esi),%ebx
417257:	74 31                	je     0x41728a
417259:	6a 14                	push   $0x14
41725b:	e8 43 80 02 00       	call   0x43f2a3
417260:	59                   	pop    %ecx
417261:	89 45 14             	mov    %eax,0x14(%ebp)
417264:	33 c9                	xor    %ecx,%ecx
417266:	89 4d fc             	mov    %ecx,-0x4(%ebp)
417269:	85 c0                	test   %eax,%eax
41726b:	74 10                	je     0x41727d
41726d:	89 18                	mov    %ebx,(%eax)
41726f:	89 48 04             	mov    %ecx,0x4(%eax)
417272:	89 48 08             	mov    %ecx,0x8(%eax)
417275:	89 48 0c             	mov    %ecx,0xc(%eax)
417278:	88 4d fc             	mov    %cl,-0x4(%ebp)
41727b:	eb 02                	jmp    0x41727f
41727d:	8b c1                	mov    %ecx,%eax
41727f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
417283:	89 07                	mov    %eax,(%edi)
417285:	89 70 10             	mov    %esi,0x10(%eax)
417288:	8b 37                	mov    (%edi),%esi
41728a:	ff 75 0c             	push   0xc(%ebp)
41728d:	8d 4e 04             	lea    0x4(%esi),%ecx
417290:	ff 75 08             	push   0x8(%ebp)
417293:	e8 ca cd fe ff       	call   0x404062
417298:	e8 76 87 02 00       	call   0x43fa13
41729d:	c2 10 00             	ret    $0x10
4172a0:	6a 00                	push   $0x0
4172a2:	b8 b8 f2 48 00       	mov    $0x48f2b8,%eax
4172a7:	e8 9e 87 02 00       	call   0x43fa4a
4172ac:	8b 7d 14             	mov    0x14(%ebp),%edi
4172af:	8b 5d 10             	mov    0x10(%ebp),%ebx
4172b2:	8b 37                	mov    (%edi),%esi
4172b4:	85 f6                	test   %esi,%esi
4172b6:	74 1b                	je     0x4172d3
4172b8:	8b c6                	mov    %esi,%eax
4172ba:	8b f0                	mov    %eax,%esi
4172bc:	3b 18                	cmp    (%eax),%ebx
4172be:	73 0b                	jae    0x4172cb
4172c0:	8d 78 10             	lea    0x10(%eax),%edi
4172c3:	8b 37                	mov    (%edi),%esi
4172c5:	8b c6                	mov    %esi,%eax
4172c7:	85 f6                	test   %esi,%esi
4172c9:	75 ef                	jne    0x4172ba
4172cb:	85 f6                	test   %esi,%esi
4172cd:	74 04                	je     0x4172d3
4172cf:	3b 1e                	cmp    (%esi),%ebx
4172d1:	74 31                	je     0x417304
4172d3:	6a 14                	push   $0x14
4172d5:	e8 c9 7f 02 00       	call   0x43f2a3
4172da:	59                   	pop    %ecx
4172db:	89 45 14             	mov    %eax,0x14(%ebp)
4172de:	33 c9                	xor    %ecx,%ecx
4172e0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4172e3:	85 c0                	test   %eax,%eax
4172e5:	74 10                	je     0x4172f7
4172e7:	89 18                	mov    %ebx,(%eax)
4172e9:	89 48 04             	mov    %ecx,0x4(%eax)
4172ec:	89 48 08             	mov    %ecx,0x8(%eax)
4172ef:	89 48 0c             	mov    %ecx,0xc(%eax)
4172f2:	88 4d fc             	mov    %cl,-0x4(%ebp)
4172f5:	eb 02                	jmp    0x4172f9
4172f7:	8b c1                	mov    %ecx,%eax
4172f9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4172fd:	89 07                	mov    %eax,(%edi)
4172ff:	89 70 10             	mov    %esi,0x10(%eax)
417302:	8b 37                	mov    (%edi),%esi
417304:	ff 75 0c             	push   0xc(%ebp)
417307:	8d 4e 04             	lea    0x4(%esi),%ecx
41730a:	ff 75 08             	push   0x8(%ebp)
41730d:	e8 89 cd fe ff       	call   0x40409b
417312:	e8 fc 86 02 00       	call   0x43fa13
417317:	c2 10 00             	ret    $0x10
41731a:	56                   	push   %esi
41731b:	8b f1                	mov    %ecx,%esi
41731d:	57                   	push   %edi
41731e:	8d 4e 24             	lea    0x24(%esi),%ecx
417321:	e8 c4 e1 ff ff       	call   0x4154ea
417326:	83 7e 4c 5e          	cmpl   $0x5e,0x4c(%esi)
41732a:	75 0e                	jne    0x41733a
41732c:	8b 46 28             	mov    0x28(%esi),%eax
41732f:	8b ce                	mov    %esi,%ecx
417331:	83 70 08 01          	xorl   $0x1,0x8(%eax)
417335:	e8 9a 50 00 00       	call   0x41c3d4
41733a:	f7 46 50 00 00 00 20 	testl  $0x20000000,0x50(%esi)
417341:	74 17                	je     0x41735a
417343:	83 7e 4c 5d          	cmpl   $0x5d,0x4c(%esi)
417347:	75 11                	jne    0x41735a
417349:	6a 5d                	push   $0x5d
41734b:	8d 4e 24             	lea    0x24(%esi),%ecx
41734e:	e8 7a e0 ff ff       	call   0x4153cd
417353:	8b ce                	mov    %esi,%ecx
417355:	e8 7a 50 00 00       	call   0x41c3d4
41735a:	5f                   	pop    %edi
41735b:	8b ce                	mov    %esi,%ecx
41735d:	5e                   	pop    %esi
41735e:	e9 b0 05 00 00       	jmp    0x417913
417363:	56                   	push   %esi
417364:	8b f1                	mov    %ecx,%esi
417366:	57                   	push   %edi
417367:	8d 4e 24             	lea    0x24(%esi),%ecx
41736a:	e8 b9 e1 ff ff       	call   0x415528
41736f:	83 7e 4c 5e          	cmpl   $0x5e,0x4c(%esi)
417373:	75 0e                	jne    0x417383
417375:	8b 46 28             	mov    0x28(%esi),%eax
417378:	8b ce                	mov    %esi,%ecx
41737a:	83 70 08 01          	xorl   $0x1,0x8(%eax)
41737e:	e8 7f 50 00 00       	call   0x41c402
417383:	f7 46 50 00 00 00 20 	testl  $0x20000000,0x50(%esi)
41738a:	74 17                	je     0x4173a3
41738c:	83 7e 4c 5d          	cmpl   $0x5d,0x4c(%esi)
417390:	75 11                	jne    0x4173a3
417392:	6a 5d                	push   $0x5d
417394:	8d 4e 24             	lea    0x24(%esi),%ecx
417397:	e8 b3 e0 ff ff       	call   0x41544f
41739c:	8b ce                	mov    %esi,%ecx
41739e:	e8 5f 50 00 00       	call   0x41c402
4173a3:	5f                   	pop    %edi
4173a4:	8b ce                	mov    %esi,%ecx
4173a6:	5e                   	pop    %esi
4173a7:	e9 4e 06 00 00       	jmp    0x4179fa
4173ac:	55                   	push   %ebp
4173ad:	8b ec                	mov    %esp,%ebp
4173af:	56                   	push   %esi
4173b0:	8b f1                	mov    %ecx,%esi
4173b2:	57                   	push   %edi
4173b3:	8b 0e                	mov    (%esi),%ecx
4173b5:	3b 4e 08             	cmp    0x8(%esi),%ecx
4173b8:	74 5b                	je     0x417415
4173ba:	8b 46 40             	mov    0x40(%esi),%eax
4173bd:	c1 e8 08             	shr    $0x8,%eax
4173c0:	24 01                	and    $0x1,%al
4173c2:	50                   	push   %eax
4173c3:	8d 41 01             	lea    0x1(%ecx),%eax
4173c6:	50                   	push   %eax
4173c7:	51                   	push   %ecx
4173c8:	8b 4e 3c             	mov    0x3c(%esi),%ecx
4173cb:	e8 55 0a ff ff       	call   0x407e25
4173d0:	0f b7 f8             	movzwl %ax,%edi
4173d3:	66 85 ff             	test   %di,%di
4173d6:	74 3d                	je     0x417415
4173d8:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4173dc:	74 08                	je     0x4173e6
4173de:	8d 4e 24             	lea    0x24(%esi),%ecx
4173e1:	e8 04 e1 ff ff       	call   0x4154ea
4173e6:	8b 46 3c             	mov    0x3c(%esi),%eax
4173e9:	8d 4e 24             	lea    0x24(%esi),%ecx
4173ec:	0f b6 56 48          	movzbl 0x48(%esi),%edx
4173f0:	8b 40 04             	mov    0x4(%eax),%eax
4173f3:	8b 40 0c             	mov    0xc(%eax),%eax
4173f6:	8a 04 50             	mov    (%eax,%edx,2),%al
4173f9:	24 01                	and    $0x1,%al
4173fb:	88 45 08             	mov    %al,0x8(%ebp)
4173fe:	ff 75 08             	push   0x8(%ebp)
417401:	57                   	push   %edi
417402:	ff 71 04             	push   0x4(%ecx)
417405:	e8 5c e1 ff ff       	call   0x415566
41740a:	8b ce                	mov    %esi,%ecx
41740c:	e8 c3 4f 00 00       	call   0x41c3d4
417411:	b0 01                	mov    $0x1,%al
417413:	eb 02                	jmp    0x417417
417415:	32 c0                	xor    %al,%al
417417:	5f                   	pop    %edi
417418:	5e                   	pop    %esi
417419:	5d                   	pop    %ebp
41741a:	c2 04 00             	ret    $0x4
41741d:	55                   	push   %ebp
41741e:	8b ec                	mov    %esp,%ebp
417420:	51                   	push   %ecx
417421:	53                   	push   %ebx
417422:	8b d9                	mov    %ecx,%ebx
417424:	8b 0b                	mov    (%ebx),%ecx
417426:	3b 4b 08             	cmp    0x8(%ebx),%ecx
417429:	74 6e                	je     0x417499
41742b:	8b 43 40             	mov    0x40(%ebx),%eax
41742e:	c1 e8 08             	shr    $0x8,%eax
417431:	24 01                	and    $0x1,%al
417433:	50                   	push   %eax
417434:	8d 41 02             	lea    0x2(%ecx),%eax
417437:	50                   	push   %eax
417438:	51                   	push   %ecx
417439:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
41743c:	e8 53 0a ff ff       	call   0x407e94
417441:	0f b7 c0             	movzwl %ax,%eax
417444:	89 45 fc             	mov    %eax,-0x4(%ebp)
417447:	66 85 c0             	test   %ax,%ax
41744a:	74 4d                	je     0x417499
41744c:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
417450:	74 08                	je     0x41745a
417452:	8d 4b 24             	lea    0x24(%ebx),%ecx
417455:	e8 ce e0 ff ff       	call   0x415528
41745a:	8b 43 3c             	mov    0x3c(%ebx),%eax
41745d:	0f b7 53 48          	movzwl 0x48(%ebx),%edx
417461:	56                   	push   %esi
417462:	57                   	push   %edi
417463:	8b 48 04             	mov    0x4(%eax),%ecx
417466:	52                   	push   %edx
417467:	6a 01                	push   $0x1
417469:	8b 01                	mov    (%ecx),%eax
41746b:	8b 40 10             	mov    0x10(%eax),%eax
41746e:	ff d0                	call   *%eax
417470:	8b 73 28             	mov    0x28(%ebx),%esi
417473:	8d 4b 24             	lea    0x24(%ebx),%ecx
417476:	88 45 08             	mov    %al,0x8(%ebp)
417479:	ff 75 08             	push   0x8(%ebp)
41747c:	ff 75 fc             	push   -0x4(%ebp)
41747f:	56                   	push   %esi
417480:	e8 64 e1 ff ff       	call   0x4155e9
417485:	8b 45 fc             	mov    -0x4(%ebp),%eax
417488:	8b cb                	mov    %ebx,%ecx
41748a:	66 09 46 24          	or     %ax,0x24(%esi)
41748e:	e8 6f 4f 00 00       	call   0x41c402
417493:	5f                   	pop    %edi
417494:	b0 01                	mov    $0x1,%al
417496:	5e                   	pop    %esi
417497:	eb 02                	jmp    0x41749b
417499:	32 c0                	xor    %al,%al
41749b:	5b                   	pop    %ebx
41749c:	c9                   	leave
41749d:	c2 04 00             	ret    $0x4
4174a0:	56                   	push   %esi
4174a1:	8b f1                	mov    %ecx,%esi
4174a3:	83 7e 4c ff          	cmpl   $0xffffffff,0x4c(%esi)
4174a7:	0f 84 f7 00 00 00    	je     0x4175a4
4174ad:	f7 46 50 00 00 01 00 	testl  $0x10000,0x50(%esi)
4174b4:	74 0e                	je     0x4174c4
4174b6:	0f b6 46 48          	movzbl 0x48(%esi),%eax
4174ba:	50                   	push   %eax
4174bb:	e8 70 12 00 00       	call   0x418730
4174c0:	84 c0                	test   %al,%al