40b5f9:	0f bf c2             	movswl %dx,%eax
40b5fc:	6a 01                	push   $0x1
40b5fe:	89 44 24 24          	mov    %eax,0x24(%esp)
40b602:	8d 44 24 20          	lea    0x20(%esp),%eax
40b606:	50                   	push   %eax
40b607:	56                   	push   %esi
40b608:	57                   	push   %edi
40b609:	ff 15 84 32 43 00    	call   *0x433284
40b60f:	8b 44 24 20          	mov    0x20(%esp),%eax
40b613:	99                   	cltd
40b614:	f7 3d 74 1f 43 00    	idivl  0x431f74
40b61a:	0f b7 0d 80 26 43 00 	movzwl 0x432680,%ecx
40b621:	8b f0                	mov    %eax,%esi
40b623:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40b627:	99                   	cltd
40b628:	f7 3d 70 1f 43 00    	idivl  0x431f70
40b62e:	0f af 35 b0 10 41 00 	imul   0x4110b0,%esi
40b635:	03 f0                	add    %eax,%esi
40b637:	03 f1                	add    %ecx,%esi
40b639:	89 74 24 14          	mov    %esi,0x14(%esp)
40b63d:	33 f6                	xor    %esi,%esi
40b63f:	46                   	inc    %esi
40b640:	39 35 bc 1f 43 00    	cmp    %esi,0x431fbc
40b646:	75 6e                	jne    0x40b6b6
40b648:	a1 90 1f 43 00       	mov    0x431f90,%eax
40b64d:	89 44 24 24          	mov    %eax,0x24(%esp)
40b651:	a1 94 1f 43 00       	mov    0x431f94,%eax
40b656:	56                   	push   %esi
40b657:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40b65b:	8d 44 24 28          	lea    0x28(%esp),%eax
40b65f:	50                   	push   %eax
40b660:	ff 35 14 19 43 00    	push   0x431914
40b666:	ff 35 10 19 43 00    	push   0x431910
40b66c:	ff 15 84 32 43 00    	call   *0x433284
40b672:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40b676:	a1 88 1f 43 00       	mov    0x431f88,%eax
40b67b:	ff 74 24 20          	push   0x20(%esp)
40b67f:	03 c1                	add    %ecx,%eax
40b681:	89 4c 24 30          	mov    %ecx,0x30(%esp)
40b685:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40b689:	ff 74 24 20          	push   0x20(%esp)
40b68d:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40b691:	a1 8c 1f 43 00       	mov    0x431f8c,%eax
40b696:	03 c1                	add    %ecx,%eax
40b698:	89 4c 24 38          	mov    %ecx,0x38(%esp)
40b69c:	89 44 24 40          	mov    %eax,0x40(%esp)
40b6a0:	8d 44 24 34          	lea    0x34(%esp),%eax
40b6a4:	50                   	push   %eax
40b6a5:	ff 15 28 32 43 00    	call   *0x433228
40b6ab:	0f b7 0d c4 1f 43 00 	movzwl 0x431fc4,%ecx
40b6b2:	85 c0                	test   %eax,%eax
40b6b4:	75 04                	jne    0x40b6ba
40b6b6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b6ba:	0f b7 05 3c 13 41 00 	movzwl 0x41133c,%eax
40b6c1:	3b c8                	cmp    %eax,%ecx
40b6c3:	0f 8f 7d 0b 00 00    	jg     0x40c246
40b6c9:	0f b7 05 38 13 41 00 	movzwl 0x411338,%eax
40b6d0:	3b c8                	cmp    %eax,%ecx
40b6d2:	0f 8f 6e 0b 00 00    	jg     0x40c246
40b6d8:	a1 48 26 43 00       	mov    0x432648,%eax
40b6dd:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40b6e1:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
40b6e6:	83 f8 20             	cmp    $0x20,%eax
40b6e9:	0f 84 57 0b 00 00    	je     0x40c246
40b6ef:	f7 05 18 19 43 00 00 	testl  $0x20000000,0x431918
40b6f6:	00 00 20
40b6f9:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
40b700:	74 2e                	je     0x40b730
40b702:	be 04 01 00 00       	mov    $0x104,%esi
40b707:	56                   	push   %esi
40b708:	50                   	push   %eax
40b709:	6a 73                	push   $0x73
40b70b:	ff 35 0c 19 41 00    	push   0x41190c
40b711:	ff 15 20 33 43 00    	call   *0x433320
40b717:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
40b71c:	50                   	push   %eax
40b71d:	8d 84 24 8c 00 00 00 	lea    0x8c(%esp),%eax
40b724:	50                   	push   %eax
40b725:	68 34 18 40 00       	push   $0x401834
40b72a:	56                   	push   %esi
40b72b:	e9 b5 00 00 00       	jmp    0x40b7e5
40b730:	50                   	push   %eax
40b731:	ff 74 24 10          	push   0x10(%esp)
40b735:	ff 15 bc 30 43 00    	call   *0x4330bc
40b73b:	a1 a4 16 41 00       	mov    0x4116a4,%eax
40b740:	3d b0 04 00 00       	cmp    $0x4b0,%eax
40b745:	0f 84 82 00 00 00    	je     0x40b7cd
40b74b:	57                   	push   %edi
40b74c:	57                   	push   %edi
40b74d:	6a 02                	push   $0x2
40b74f:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40b753:	51                   	push   %ecx
40b754:	56                   	push   %esi
40b755:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40b759:	51                   	push   %ecx
40b75a:	68 00 04 00 00       	push   $0x400
40b75f:	50                   	push   %eax
40b760:	ff 15 b0 31 43 00    	call   *0x4331b0
40b766:	3b c6                	cmp    %esi,%eax
40b768:	75 07                	jne    0x40b771
40b76a:	0f b6 44 24 14       	movzbl 0x14(%esp),%eax
40b76f:	eb 15                	jmp    0x40b786
40b771:	66 8b 44 24 14       	mov    0x14(%esp),%ax
40b776:	0f b6 c8             	movzbl %al,%ecx
40b779:	0f b6 c4             	movzbl %ah,%eax
40b77c:	66 c1 e1 08          	shl    $0x8,%cx
40b780:	66 0b c8             	or     %ax,%cx
40b783:	0f b7 c1             	movzwl %cx,%eax
40b786:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
40b78d:	0f b7 c0             	movzwl %ax,%eax
40b790:	51                   	push   %ecx
40b791:	50                   	push   %eax
40b792:	0f b7 44 24 14       	movzwl 0x14(%esp),%eax
40b797:	be 20 19 43 00       	mov    $0x431920,%esi
40b79c:	50                   	push   %eax
40b79d:	68 4c 18 40 00       	push   $0x40184c
40b7a2:	68 04 01 00 00       	push   $0x104
40b7a7:	56                   	push   %esi
40b7a8:	e8 fb 81 ff ff       	call   0x4039a8
40b7ad:	83 c4 18             	add    $0x18,%esp
40b7b0:	85 c0                	test   %eax,%eax
40b7b2:	0f 88 8e 0a 00 00    	js     0x40c246
40b7b8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b7bc:	56                   	push   %esi
40b7bd:	6a 50                	push   $0x50
40b7bf:	5a                   	pop    %edx
40b7c0:	8d 49 10             	lea    0x10(%ecx),%ecx
40b7c3:	e8 97 82 ff ff       	call   0x403a5f
40b7c8:	e9 79 0a 00 00       	jmp    0x40c246
40b7cd:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
40b7d4:	50                   	push   %eax
40b7d5:	0f b7 44 24 10       	movzwl 0x10(%esp),%eax
40b7da:	50                   	push   %eax
40b7db:	68 74 18 40 00       	push   $0x401874
40b7e0:	68 04 01 00 00       	push   $0x104
40b7e5:	be 20 19 43 00       	mov    $0x431920,%esi
40b7ea:	56                   	push   %esi
40b7eb:	e8 b8 81 ff ff       	call   0x4039a8
40b7f0:	83 c4 14             	add    $0x14,%esp
40b7f3:	eb bb                	jmp    0x40b7b0
40b7f5:	b8 81 00 00 00       	mov    $0x81,%eax
40b7fa:	e9 49 0a 00 00       	jmp    0x40c248
40b7ff:	8b c1                	mov    %ecx,%eax
40b801:	2d 00 01 00 00       	sub    $0x100,%eax
40b806:	0f 84 77 04 00 00    	je     0x40bc83
40b80c:	48                   	dec    %eax
40b80d:	83 e8 01             	sub    $0x1,%eax
40b810:	0f 84 14 04 00 00    	je     0x40bc2a
40b816:	83 e8 11             	sub    $0x11,%eax
40b819:	0f 84 ae 03 00 00    	je     0x40bbcd
40b81f:	6a 00                	push   $0x0
40b821:	5f                   	pop    %edi
40b822:	2d ed 00 00 00       	sub    $0xed,%eax
40b827:	0f 84 9c 01 00 00    	je     0x40b9c9
40b82d:	83 e8 01             	sub    $0x1,%eax
40b830:	0f 84 c6 00 00 00    	je     0x40b8fc
40b836:	83 e8 01             	sub    $0x1,%eax
40b839:	74 6f                	je     0x40b8aa
40b83b:	83 e8 01             	sub    $0x1,%eax
40b83e:	74 11                	je     0x40b851
40b840:	52                   	push   %edx
40b841:	ff 75 10             	push   0x10(%ebp)
40b844:	51                   	push   %ecx
40b845:	56                   	push   %esi
40b846:	ff 15 08 32 43 00    	call   *0x433208
40b84c:	e9 f7 09 00 00       	jmp    0x40c248
40b851:	be 70 1f 43 00       	mov    $0x431f70,%esi
40b856:	8b ce                	mov    %esi,%ecx
40b858:	e8 4f 0e 00 00       	call   0x40c6ac
40b85d:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40b864:	3b c1                	cmp    %ecx,%eax
40b866:	77 2b                	ja     0x40b893
40b868:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40b86e:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
40b872:	66 85 c0             	test   %ax,%ax
40b875:	74 1c                	je     0x40b893
40b877:	83 f8 20             	cmp    $0x20,%eax
40b87a:	74 17                	je     0x40b893
40b87c:	ff 35 10 19 43 00    	push   0x431910
40b882:	8b 15 cc 1f 43 00    	mov    0x431fcc,%edx
40b888:	8b 0d c4 1f 43 00    	mov    0x431fc4,%ecx
40b88e:	e8 5a e5 ff ff       	call   0x409ded
40b893:	83 3d bc 1f 43 00 00 	cmpl   $0x0,0x431fbc
40b89a:	0f 84 a6 09 00 00    	je     0x40c246
40b8a0:	8b d6                	mov    %esi,%edx
40b8a2:	8b 0d 14 19 43 00    	mov    0x431914,%ecx
40b8a8:	eb 48                	jmp    0x40b8f2
40b8aa:	83 3d b4 1f 43 00 00 	cmpl   $0x0,0x431fb4
40b8b1:	74 09                	je     0x40b8bc
40b8b3:	6a 08                	push   $0x8
40b8b5:	56                   	push   %esi
40b8b6:	ff 15 44 32 43 00    	call   *0x433244
40b8bc:	33 ff                	xor    %edi,%edi
40b8be:	89 3d b4 1f 43 00    	mov    %edi,0x431fb4
40b8c4:	ff 15 30 32 43 00    	call   *0x433230
40b8ca:	39 3d 58 26 43 00    	cmp    %edi,0x432658
40b8d0:	0f 84 70 09 00 00    	je     0x40c246
40b8d6:	ff 15 30 32 43 00    	call   *0x433230
40b8dc:	6a 01                	push   $0x1
40b8de:	56                   	push   %esi
40b8df:	ff 15 44 32 43 00    	call   *0x433244
40b8e5:	89 3d 58 26 43 00    	mov    %edi,0x432658
40b8eb:	ba 70 1f 43 00       	mov    $0x431f70,%edx
40b8f0:	8b ce                	mov    %esi,%ecx
40b8f2:	e8 7c 23 00 00       	call   0x40dc73
40b8f7:	e9 4a 09 00 00       	jmp    0x40c246
40b8fc:	83 3d bc 1f 43 00 00 	cmpl   $0x0,0x431fbc
40b903:	74 4c                	je     0x40b951
40b905:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40b90a:	e8 9d 0d 00 00       	call   0x40c6ac
40b90f:	0f b7 0d c4 1f 43 00 	movzwl 0x431fc4,%ecx
40b916:	3b c1                	cmp    %ecx,%eax
40b918:	75 37                	jne    0x40b951
40b91a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b91e:	0f bf c1             	movswl %cx,%eax
40b921:	a3 14 27 43 00       	mov    %eax,0x432714
40b926:	8b c1                	mov    %ecx,%eax
40b928:	c1 e8 10             	shr    $0x10,%eax
40b92b:	98                   	cwtl
40b92c:	57                   	push   %edi
40b92d:	ff 35 34 26 43 00    	push   0x432634
40b933:	a3 18 27 43 00       	mov    %eax,0x432718
40b938:	33 c0                	xor    %eax,%eax
40b93a:	40                   	inc    %eax
40b93b:	50                   	push   %eax
40b93c:	56                   	push   %esi
40b93d:	a3 58 26 43 00       	mov    %eax,0x432658
40b942:	ff 15 40 32 43 00    	call   *0x433240
40b948:	56                   	push   %esi
40b949:	ff 15 2c 32 43 00    	call   *0x43322c
40b94f:	eb 6b                	jmp    0x40b9bc
40b951:	a1 48 26 43 00       	mov    0x432648,%eax
40b956:	85 c0                	test   %eax,%eax
40b958:	0f 84 e8 08 00 00    	je     0x40c246
40b95e:	66 39 38             	cmp    %di,(%eax)
40b961:	0f 84 df 08 00 00    	je     0x40c246
40b967:	57                   	push   %edi
40b968:	8d 44 24 30          	lea    0x30(%esp),%eax
40b96c:	50                   	push   %eax
40b96d:	56                   	push   %esi
40b96e:	ff 15 b8 32 43 00    	call   *0x4332b8
40b974:	85 c0                	test   %eax,%eax
40b976:	0f 85 ca 08 00 00    	jne    0x40c246
40b97c:	56                   	push   %esi
40b97d:	ff 15 28 33 43 00    	call   *0x433328
40b983:	56                   	push   %esi
40b984:	ff 15 2c 32 43 00    	call   *0x43322c
40b98a:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40b991:	c7 05 b4 1f 43 00 01 	movl   $0x1,0x431fb4
40b998:	00 00 00
40b99b:	75 1f                	jne    0x40b9bc
40b99d:	83 3d bc 1f 43 00 00 	cmpl   $0x0,0x431fbc
40b9a4:	75 16                	jne    0x40b9bc
40b9a6:	0f b7 05 c4 1f 43 00 	movzwl 0x431fc4,%eax
40b9ad:	8b d6                	mov    %esi,%edx
40b9af:	57                   	push   %edi
40b9b0:	57                   	push   %edi
40b9b1:	50                   	push   %eax
40b9b2:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40b9b7:	e8 5b 0d 00 00       	call   0x40c717
40b9bc:	57                   	push   %edi
40b9bd:	ff 35 50 1f 43 00    	push   0x431f50
40b9c3:	ff 15 f4 31 43 00    	call   *0x4331f4
40b9c9:	83 3d b8 1f 43 00 00 	cmpl   $0x0,0x431fb8
40b9d0:	74 0e                	je     0x40b9e0
40b9d2:	6a 01                	push   $0x1
40b9d4:	89 3d b8 1f 43 00    	mov    %edi,0x431fb8
40b9da:	ff 15 bc 32 43 00    	call   *0x4332bc
40b9e0:	83 3d 58 26 43 00 00 	cmpl   $0x0,0x432658
40b9e7:	74 62                	je     0x40ba4b
40b9e9:	8b 44 24 10          	mov    0x10(%esp),%eax
40b9ed:	8b 0d 30 26 43 00    	mov    0x432630,%ecx
40b9f3:	0f bf d0             	movswl %ax,%edx
40b9f6:	c1 e8 10             	shr    $0x10,%eax
40b9f9:	98                   	cwtl
40b9fa:	89 44 24 0c          	mov    %eax,0xc(%esp)
40b9fe:	a1 14 27 43 00       	mov    0x432714,%eax
40ba03:	2b c1                	sub    %ecx,%eax
40ba05:	3b c2                	cmp    %edx,%eax
40ba07:	7f 28                	jg     0x40ba31
40ba09:	a1 14 27 43 00       	mov    0x432714,%eax
40ba0e:	03 c1                	add    %ecx,%eax
40ba10:	3b d0                	cmp    %eax,%edx
40ba12:	7f 1d                	jg     0x40ba31
40ba14:	8b 15 18 27 43 00    	mov    0x432718,%edx
40ba1a:	8b c2                	mov    %edx,%eax
40ba1c:	2b c1                	sub    %ecx,%eax
40ba1e:	3b 44 24 0c          	cmp    0xc(%esp),%eax
40ba22:	7f 0d                	jg     0x40ba31
40ba24:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40ba27:	39 44 24 0c          	cmp    %eax,0xc(%esp)
40ba2b:	0f 8e 15 08 00 00    	jle    0x40c246
40ba31:	ff 15 30 32 43 00    	call   *0x433230
40ba37:	6a 01                	push   $0x1
40ba39:	56                   	push   %esi
40ba3a:	ff 15 44 32 43 00    	call   *0x433244
40ba40:	89 3d 58 26 43 00    	mov    %edi,0x432658
40ba46:	e9 cc 01 00 00       	jmp    0x40bc17
40ba4b:	83 3d b4 1f 43 00 00 	cmpl   $0x0,0x431fb4
40ba52:	0f 84 2a 01 00 00    	je     0x40bb82
40ba58:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40ba5c:	0f b7 c1             	movzwl %cx,%eax
40ba5f:	89 44 24 14          	mov    %eax,0x14(%esp)
40ba63:	8b c1                	mov    %ecx,%eax
40ba65:	c1 e8 10             	shr    $0x10,%eax
40ba68:	89 44 24 18          	mov    %eax,0x18(%esp)
40ba6c:	8d 44 24 14          	lea    0x14(%esp),%eax
40ba70:	50                   	push   %eax
40ba71:	56                   	push   %esi
40ba72:	ff 15 74 32 43 00    	call   *0x433274
40ba78:	ff 74 24 18          	push   0x18(%esp)
40ba7c:	ff 74 24 18          	push   0x18(%esp)
40ba80:	ff 15 c0 32 43 00    	call   *0x4332c0
40ba86:	3b c6                	cmp    %esi,%eax
40ba88:	0f 85 ca 00 00 00    	jne    0x40bb58
40ba8e:	6a 08                	push   $0x8
40ba90:	56                   	push   %esi
40ba91:	ff 15 44 32 43 00    	call   *0x433244
40ba97:	8d 44 24 14          	lea    0x14(%esp),%eax
40ba9b:	50                   	push   %eax
40ba9c:	56                   	push   %esi
40ba9d:	ff 15 9c 32 43 00    	call   *0x43329c
40baa3:	0f b7 54 24 18       	movzwl 0x18(%esp),%edx
40baa8:	be 70 1f 43 00       	mov    $0x431f70,%esi
40baad:	0f b7 44 24 14       	movzwl 0x14(%esp),%eax
40bab2:	8b ce                	mov    %esi,%ecx
40bab4:	c1 e2 10             	shl    $0x10,%edx
40bab7:	0b d0                	or     %eax,%edx
40bab9:	e8 ee 0b 00 00       	call   0x40c6ac
40babe:	0f b7 0d 80 26 43 00 	movzwl 0x432680,%ecx
40bac5:	8b d0                	mov    %eax,%edx
40bac7:	0f b7 05 38 13 41 00 	movzwl 0x411338,%eax
40bace:	03 ca                	add    %edx,%ecx
40bad0:	89 54 24 0c          	mov    %edx,0xc(%esp)
40bad4:	89 15 d8 23 43 00    	mov    %edx,0x4323d8
40bada:	3b c8                	cmp    %eax,%ecx
40badc:	7f 08                	jg     0x40bae6
40bade:	89 15 6c 1f 43 00    	mov    %edx,0x431f6c
40bae4:	eb 0a                	jmp    0x40baf0
40bae6:	a1 6c 1f 43 00       	mov    0x431f6c,%eax
40baeb:	a3 d8 23 43 00       	mov    %eax,0x4323d8
40baf0:	0f b7 05 3c 13 41 00 	movzwl 0x41133c,%eax
40baf7:	3b d0                	cmp    %eax,%edx
40baf9:	77 3d                	ja     0x40bb38
40bafb:	e8 4e b1 ff ff       	call   0x406c4e
40bb00:	85 c0                	test   %eax,%eax
40bb02:	74 10                	je     0x40bb14
40bb04:	a1 48 26 43 00       	mov    0x432648,%eax
40bb09:	85 c0                	test   %eax,%eax
40bb0b:	74 07                	je     0x40bb14