40b3f4:	58                   	pop    %eax
40b3f5:	89 86 98 01 00 00    	mov    %eax,0x198(%esi)
40b3fb:	89 86 88 01 00 00    	mov    %eax,0x188(%esi)
40b401:	8b c6                	mov    %esi,%eax
40b403:	89 8e a4 01 00 00    	mov    %ecx,0x1a4(%esi)
40b409:	89 8e a8 01 00 00    	mov    %ecx,0x1a8(%esi)
40b40f:	89 8e 8c 01 00 00    	mov    %ecx,0x18c(%esi)
40b415:	89 8e 90 01 00 00    	mov    %ecx,0x190(%esi)
40b41b:	89 8e 94 01 00 00    	mov    %ecx,0x194(%esi)
40b421:	89 8e 9c 01 00 00    	mov    %ecx,0x19c(%esi)
40b427:	89 8e a0 01 00 00    	mov    %ecx,0x1a0(%esi)
40b42d:	89 8e e4 02 00 00    	mov    %ecx,0x2e4(%esi)
40b433:	89 8e e0 02 00 00    	mov    %ecx,0x2e0(%esi)
40b439:	89 8e e8 02 00 00    	mov    %ecx,0x2e8(%esi)
40b43f:	89 8e ec 02 00 00    	mov    %ecx,0x2ec(%esi)
40b445:	5e                   	pop    %esi
40b446:	c9                   	leave
40b447:	c3                   	ret
40b448:	8b ff                	mov    %edi,%edi
40b44a:	55                   	push   %ebp
40b44b:	8b ec                	mov    %esp,%ebp
40b44d:	6a ff                	push   $0xffffffff
40b44f:	68 44 85 42 00       	push   $0x428544
40b454:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b45a:	50                   	push   %eax
40b45b:	56                   	push   %esi
40b45c:	57                   	push   %edi
40b45d:	a1 74 b6 42 00       	mov    0x42b674,%eax
40b462:	33 c5                	xor    %ebp,%eax
40b464:	50                   	push   %eax
40b465:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b468:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40b46e:	8b f1                	mov    %ecx,%esi
40b470:	8b 86 a8 01 00 00    	mov    0x1a8(%esi),%eax
40b476:	33 ff                	xor    %edi,%edi
40b478:	85 c0                	test   %eax,%eax
40b47a:	74 0d                	je     0x40b489
40b47c:	50                   	push   %eax
40b47d:	ff 15 30 c2 42 00    	call   *0x42c230
40b483:	89 be a8 01 00 00    	mov    %edi,0x1a8(%esi)
40b489:	8b 86 a4 01 00 00    	mov    0x1a4(%esi),%eax
40b48f:	85 c0                	test   %eax,%eax
40b491:	74 0d                	je     0x40b4a0
40b493:	50                   	push   %eax
40b494:	ff 15 30 c2 42 00    	call   *0x42c230
40b49a:	89 be a4 01 00 00    	mov    %edi,0x1a4(%esi)
40b4a0:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
40b4a6:	83 f8 01             	cmp    $0x1,%eax
40b4a9:	75 2a                	jne    0x40b4d5
40b4ab:	8b 86 90 01 00 00    	mov    0x190(%esi),%eax
40b4b1:	85 c0                	test   %eax,%eax
40b4b3:	74 0d                	je     0x40b4c2
40b4b5:	50                   	push   %eax
40b4b6:	ff 15 50 c2 42 00    	call   *0x42c250
40b4bc:	89 be 90 01 00 00    	mov    %edi,0x190(%esi)
40b4c2:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b4c8:	85 c0                	test   %eax,%eax
40b4ca:	74 42                	je     0x40b50e
40b4cc:	50                   	push   %eax
40b4cd:	e8 69 c8 01 00       	call   0x427d3b
40b4d2:	59                   	pop    %ecx
40b4d3:	eb 33                	jmp    0x40b508
40b4d5:	83 f8 02             	cmp    $0x2,%eax
40b4d8:	75 19                	jne    0x40b4f3
40b4da:	8b 86 94 01 00 00    	mov    0x194(%esi),%eax
40b4e0:	85 c0                	test   %eax,%eax
40b4e2:	74 de                	je     0x40b4c2
40b4e4:	50                   	push   %eax
40b4e5:	ff 15 50 c2 42 00    	call   *0x42c250
40b4eb:	89 be 94 01 00 00    	mov    %edi,0x194(%esi)
40b4f1:	eb cf                	jmp    0x40b4c2
40b4f3:	85 c0                	test   %eax,%eax
40b4f5:	75 17                	jne    0x40b50e
40b4f7:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40b4fd:	85 c0                	test   %eax,%eax
40b4ff:	74 0d                	je     0x40b50e
40b501:	50                   	push   %eax
40b502:	ff 15 50 c2 42 00    	call   *0x42c250
40b508:	89 be 8c 01 00 00    	mov    %edi,0x18c(%esi)
40b50e:	8d 8e e8 02 00 00    	lea    0x2e8(%esi),%ecx
40b514:	39 39                	cmp    %edi,(%ecx)
40b516:	74 05                	je     0x40b51d
40b518:	e8 46 d2 00 00       	call   0x418763
40b51d:	8d 8e b0 01 00 00    	lea    0x1b0(%esi),%ecx
40b523:	e8 fc b4 00 00       	call   0x416a24
40b528:	8b ce                	mov    %esi,%ecx
40b52a:	e8 b1 c2 ff ff       	call   0x4077e0
40b52f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b532:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b539:	59                   	pop    %ecx
40b53a:	5f                   	pop    %edi
40b53b:	5e                   	pop    %esi
40b53c:	c9                   	leave
40b53d:	c3                   	ret
40b53e:	8b ff                	mov    %edi,%edi
40b540:	55                   	push   %ebp
40b541:	8b ec                	mov    %esp,%ebp
40b543:	56                   	push   %esi
40b544:	33 f6                	xor    %esi,%esi
40b546:	85 d2                	test   %edx,%edx
40b548:	74 08                	je     0x40b552
40b54a:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40b550:	76 05                	jbe    0x40b557
40b552:	be 57 00 07 80       	mov    $0x80070057,%esi
40b557:	85 f6                	test   %esi,%esi
40b559:	78 41                	js     0x40b59c
40b55b:	8b f2                	mov    %edx,%esi
40b55d:	85 d2                	test   %edx,%edx
40b55f:	74 28                	je     0x40b589
40b561:	57                   	push   %edi
40b562:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40b567:	2b fa                	sub    %edx,%edi
40b569:	8b 55 08             	mov    0x8(%ebp),%edx
40b56c:	2b d1                	sub    %ecx,%edx
40b56e:	8d 04 37             	lea    (%edi,%esi,1),%eax
40b571:	85 c0                	test   %eax,%eax
40b573:	74 0f                	je     0x40b584
40b575:	8a 04 0a             	mov    (%edx,%ecx,1),%al
40b578:	84 c0                	test   %al,%al
40b57a:	74 08                	je     0x40b584
40b57c:	88 01                	mov    %al,(%ecx)
40b57e:	41                   	inc    %ecx
40b57f:	83 ee 01             	sub    $0x1,%esi
40b582:	75 ea                	jne    0x40b56e
40b584:	5f                   	pop    %edi
40b585:	85 f6                	test   %esi,%esi
40b587:	75 01                	jne    0x40b58a
40b589:	49                   	dec    %ecx
40b58a:	f7 de                	neg    %esi
40b58c:	1b f6                	sbb    %esi,%esi
40b58e:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
40b594:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
40b59a:	eb 04                	jmp    0x40b5a0
40b59c:	85 d2                	test   %edx,%edx
40b59e:	74 03                	je     0x40b5a3
40b5a0:	c6 01 00             	movb   $0x0,(%ecx)
40b5a3:	8b c6                	mov    %esi,%eax
40b5a5:	5e                   	pop    %esi
40b5a6:	5d                   	pop    %ebp
40b5a7:	c2 04 00             	ret    $0x4
40b5aa:	85 c9                	test   %ecx,%ecx
40b5ac:	7e 0b                	jle    0x40b5b9
40b5ae:	0f b7 c9             	movzwl %cx,%ecx
40b5b1:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
40b5b7:	85 c9                	test   %ecx,%ecx
40b5b9:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b5be:	79 02                	jns    0x40b5c2
40b5c0:	8b c1                	mov    %ecx,%eax
40b5c2:	c3                   	ret
40b5c3:	8b ff                	mov    %edi,%edi
40b5c5:	55                   	push   %ebp
40b5c6:	8b ec                	mov    %esp,%ebp
40b5c8:	85 d2                	test   %edx,%edx
40b5ca:	74 3b                	je     0x40b607
40b5cc:	8b 45 08             	mov    0x8(%ebp),%eax
40b5cf:	85 c0                	test   %eax,%eax
40b5d1:	74 34                	je     0x40b607
40b5d3:	f7 c1 00 08 00 00    	test   $0x800,%ecx
40b5d9:	74 03                	je     0x40b5de
40b5db:	83 08 20             	orl    $0x20,(%eax)
40b5de:	8b 45 0c             	mov    0xc(%ebp),%eax
40b5e1:	85 c0                	test   %eax,%eax
40b5e3:	74 0b                	je     0x40b5f0
40b5e5:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40b5eb:	74 03                	je     0x40b5f0
40b5ed:	83 08 02             	orl    $0x2,(%eax)
40b5f0:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
40b5f6:	74 03                	je     0x40b5fb
40b5f8:	83 0a 60             	orl    $0x60,(%edx)
40b5fb:	f6 c1 40             	test   $0x40,%cl
40b5fe:	74 03                	je     0x40b603
40b600:	83 0a 01             	orl    $0x1,(%edx)
40b603:	33 c0                	xor    %eax,%eax
40b605:	eb 2a                	jmp    0x40b631
40b607:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b60c:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b611:	74 19                	je     0x40b62c
40b613:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b617:	74 13                	je     0x40b62c
40b619:	ff 70 14             	push   0x14(%eax)
40b61c:	ba f0 21 40 00       	mov    $0x4021f0,%edx
40b621:	ff 70 10             	push   0x10(%eax)
40b624:	6a 0a                	push   $0xa
40b626:	59                   	pop    %ecx
40b627:	e8 84 bd ff ff       	call   0x4073b0
40b62c:	b8 57 00 07 80       	mov    $0x80070057,%eax
40b631:	5d                   	pop    %ebp
40b632:	c2 08 00             	ret    $0x8
40b635:	8b ff                	mov    %edi,%edi
40b637:	55                   	push   %ebp
40b638:	8b ec                	mov    %esp,%ebp
40b63a:	51                   	push   %ecx
40b63b:	53                   	push   %ebx
40b63c:	56                   	push   %esi
40b63d:	57                   	push   %edi
40b63e:	8b f9                	mov    %ecx,%edi
40b640:	8b da                	mov    %edx,%ebx
40b642:	85 ff                	test   %edi,%edi
40b644:	0f 84 31 01 00 00    	je     0x40b77b
40b64a:	85 db                	test   %ebx,%ebx
40b64c:	0f 84 29 01 00 00    	je     0x40b77b
40b652:	8b 75 08             	mov    0x8(%ebp),%esi
40b655:	85 f6                	test   %esi,%esi
40b657:	0f 84 1e 01 00 00    	je     0x40b77b
40b65d:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40b661:	0f 84 14 01 00 00    	je     0x40b77b
40b667:	83 23 00             	andl   $0x0,(%ebx)
40b66a:	6a 3d                	push   $0x3d
40b66c:	57                   	push   %edi
40b66d:	ff 15 30 c3 42 00    	call   *0x42c330
40b673:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b676:	59                   	pop    %ecx
40b677:	59                   	pop    %ecx
40b678:	8b ce                	mov    %esi,%ecx
40b67a:	85 c0                	test   %eax,%eax
40b67c:	0f 84 cd 00 00 00    	je     0x40b74f
40b682:	8b d0                	mov    %eax,%edx
40b684:	2b d7                	sub    %edi,%edx
40b686:	d1 fa                	sar    $1,%edx
40b688:	52                   	push   %edx
40b689:	57                   	push   %edi
40b68a:	e8 5a 09 00 00       	call   0x40bfe9
40b68f:	8b f0                	mov    %eax,%esi
40b691:	85 f6                	test   %esi,%esi
40b693:	79 28                	jns    0x40b6bd
40b695:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b69a:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b69f:	74 7d                	je     0x40b71e
40b6a1:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b6a5:	74 77                	je     0x40b71e
40b6a7:	57                   	push   %edi
40b6a8:	ff 70 14             	push   0x14(%eax)
40b6ab:	ff 70 10             	push   0x10(%eax)
40b6ae:	6a 0c                	push   $0xc
40b6b0:	ba f0 21 40 00       	mov    $0x4021f0,%edx
40b6b5:	59                   	pop    %ecx
40b6b6:	e8 9d c2 ff ff       	call   0x407958
40b6bb:	eb 61                	jmp    0x40b71e
40b6bd:	8b 7d fc             	mov    -0x4(%ebp),%edi
40b6c0:	83 c7 02             	add    $0x2,%edi
40b6c3:	6a 26                	push   $0x26
40b6c5:	57                   	push   %edi
40b6c6:	ff 15 30 c3 42 00    	call   *0x42c330
40b6cc:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b6cf:	59                   	pop    %ecx
40b6d0:	59                   	pop    %ecx
40b6d1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b6d4:	85 c0                	test   %eax,%eax
40b6d6:	74 4d                	je     0x40b725
40b6d8:	8b d0                	mov    %eax,%edx
40b6da:	2b d7                	sub    %edi,%edx
40b6dc:	d1 fa                	sar    $1,%edx
40b6de:	52                   	push   %edx
40b6df:	57                   	push   %edi
40b6e0:	e8 04 09 00 00       	call   0x40bfe9
40b6e5:	8b f0                	mov    %eax,%esi
40b6e7:	85 f6                	test   %esi,%esi
40b6e9:	79 29                	jns    0x40b714
40b6eb:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b6f0:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b6f5:	74 27                	je     0x40b71e
40b6f7:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b6fb:	74 21                	je     0x40b71e
40b6fd:	56                   	push   %esi
40b6fe:	57                   	push   %edi
40b6ff:	ff 70 14             	push   0x14(%eax)
40b702:	ff 70 10             	push   0x10(%eax)
40b705:	6a 0d                	push   $0xd
40b707:	ba f0 21 40 00       	mov    $0x4021f0,%edx
40b70c:	59                   	pop    %ecx
40b70d:	e8 a4 c2 ff ff       	call   0x4079b6
40b712:	eb 0a                	jmp    0x40b71e
40b714:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b717:	83 c0 02             	add    $0x2,%eax
40b71a:	89 03                	mov    %eax,(%ebx)
40b71c:	33 f6                	xor    %esi,%esi
40b71e:	8b c6                	mov    %esi,%eax
40b720:	e9 80 00 00 00       	jmp    0x40b7a5
40b725:	57                   	push   %edi
40b726:	e8 8d 09 00 00       	call   0x40c0b8
40b72b:	8b f0                	mov    %eax,%esi
40b72d:	85 f6                	test   %esi,%esi
40b72f:	79 eb                	jns    0x40b71c
40b731:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b736:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b73b:	74 e1                	je     0x40b71e
40b73d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b741:	74 db                	je     0x40b71e
40b743:	56                   	push   %esi
40b744:	57                   	push   %edi
40b745:	ff 70 14             	push   0x14(%eax)
40b748:	ff 70 10             	push   0x10(%eax)
40b74b:	6a 0e                	push   $0xe
40b74d:	eb b8                	jmp    0x40b707
40b74f:	57                   	push   %edi
40b750:	e8 63 09 00 00       	call   0x40c0b8
40b755:	8b f0                	mov    %eax,%esi
40b757:	85 f6                	test   %esi,%esi
40b759:	79 c1                	jns    0x40b71c
40b75b:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b760:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b765:	74 b7                	je     0x40b71e
40b767:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b76b:	74 b1                	je     0x40b71e
40b76d:	57                   	push   %edi
40b76e:	ff 70 14             	push   0x14(%eax)
40b771:	ff 70 10             	push   0x10(%eax)
40b774:	6a 0f                	push   $0xf
40b776:	e9 35 ff ff ff       	jmp    0x40b6b0
40b77b:	a1 00 b0 42 00       	mov    0x42b000,%eax
40b780:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40b785:	74 19                	je     0x40b7a0
40b787:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40b78b:	74 13                	je     0x40b7a0
40b78d:	ff 70 14             	push   0x14(%eax)
40b790:	ba f0 21 40 00       	mov    $0x4021f0,%edx
40b795:	ff 70 10             	push   0x10(%eax)
40b798:	6a 0b                	push   $0xb
40b79a:	59                   	pop    %ecx
40b79b:	e8 10 bc ff ff       	call   0x4073b0
40b7a0:	b8 57 00 07 80       	mov    $0x80070057,%eax
40b7a5:	5f                   	pop    %edi
40b7a6:	5e                   	pop    %esi
40b7a7:	5b                   	pop    %ebx
40b7a8:	c9                   	leave
40b7a9:	c2 08 00             	ret    $0x8
40b7ac:	8b ff                	mov    %edi,%edi
40b7ae:	55                   	push   %ebp
40b7af:	8b ec                	mov    %esp,%ebp
40b7b1:	51                   	push   %ecx
40b7b2:	53                   	push   %ebx
40b7b3:	56                   	push   %esi
40b7b4:	57                   	push   %edi
40b7b5:	8b 7d 10             	mov    0x10(%ebp),%edi
40b7b8:	33 c0                	xor    %eax,%eax
40b7ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b7bd:	8b da                	mov    %edx,%ebx
40b7bf:	85 ff                	test   %edi,%edi
40b7c1:	74 20                	je     0x40b7e3
40b7c3:	8b f7                	mov    %edi,%esi
40b7c5:	8d 56 02             	lea    0x2(%esi),%edx
40b7c8:	66 8b 06             	mov    (%esi),%ax
40b7cb:	83 c6 02             	add    $0x2,%esi
40b7ce:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
40b7d2:	75 f4                	jne    0x40b7c8
40b7d4:	2b f2                	sub    %edx,%esi
40b7d6:	d1 fe                	sar    $1,%esi
40b7d8:	33 c0                	xor    %eax,%eax
40b7da:	8d 34 75 02 00 00 00 	lea    0x2(,%esi,2),%esi
40b7e1:	eb 03                	jmp    0x40b7e6