43e4aa:	e8 01 6e fd ff       	call   0x4152b0
43e4af:	8b c8                	mov    %eax,%ecx
43e4b1:	e8 2a a8 fe ff       	call   0x428ce0
43e4b6:	85 c0                	test   %eax,%eax
43e4b8:	0f 88 63 05 00 00    	js     0x43ea21
43e4be:	8d 85 48 f9 ff ff    	lea    -0x6b8(%ebp),%eax
43e4c4:	50                   	push   %eax
43e4c5:	ff 35 a8 12 45 00    	push   0x4512a8
43e4cb:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e4d1:	68 74 29 40 00       	push   $0x402974
43e4d6:	68 b0 04 00 00       	push   $0x4b0
43e4db:	50                   	push   %eax
43e4dc:	e8 bf a9 fe ff       	call   0x428ea0
43e4e1:	8d 8d 48 fb ff ff    	lea    -0x4b8(%ebp),%ecx
43e4e7:	83 c4 14             	add    $0x14,%esp
43e4ea:	8d 51 02             	lea    0x2(%ecx),%edx
43e4ed:	8d 49 00             	lea    0x0(%ecx),%ecx
43e4f0:	66 8b 01             	mov    (%ecx),%ax
43e4f3:	83 c1 02             	add    $0x2,%ecx
43e4f6:	66 85 c0             	test   %ax,%ax
43e4f9:	75 f5                	jne    0x43e4f0
43e4fb:	2b ca                	sub    %edx,%ecx
43e4fd:	c7 05 ac 12 45 00 00 	movl   $0x0,0x4512ac
43e504:	00 00 00
43e507:	d1 f9                	sar    $1,%ecx
43e509:	8d 41 01             	lea    0x1(%ecx),%eax
43e50c:	8d 34 00             	lea    (%eax,%eax,1),%esi
43e50f:	3b c1                	cmp    %ecx,%eax
43e511:	0f 82 ce 04 00 00    	jb     0x43e9e5
43e517:	83 f8 01             	cmp    $0x1,%eax
43e51a:	0f 82 c5 04 00 00    	jb     0x43e9e5
43e520:	56                   	push   %esi
43e521:	6a 00                	push   $0x0
43e523:	ff 15 30 21 45 00    	call   *0x452130
43e529:	8b c8                	mov    %eax,%ecx
43e52b:	89 0d ac 12 45 00    	mov    %ecx,0x4512ac
43e531:	85 c9                	test   %ecx,%ecx
43e533:	0f 84 86 04 00 00    	je     0x43e9bf
43e539:	d1 ee                	shr    $1,%esi
43e53b:	8b c6                	mov    %esi,%eax
43e53d:	f7 d8                	neg    %eax
43e53f:	1b c0                	sbb    %eax,%eax
43e541:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e546:	05 57 00 07 80       	add    $0x80070057,%eax
43e54b:	85 f6                	test   %esi,%esi
43e54d:	74 10                	je     0x43e55f
43e54f:	51                   	push   %ecx
43e550:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e556:	8b d6                	mov    %esi,%edx
43e558:	50                   	push   %eax
43e559:	51                   	push   %ecx
43e55a:	e8 51 6d fd ff       	call   0x4152b0
43e55f:	8b c8                	mov    %eax,%ecx
43e561:	e8 7a a7 fe ff       	call   0x428ce0
43e566:	85 c0                	test   %eax,%eax
43e568:	0f 88 b3 04 00 00    	js     0x43ea21
43e56e:	51                   	push   %ecx
43e56f:	ff 35 a8 12 45 00    	push   0x4512a8
43e575:	ba 00 01 00 00       	mov    $0x100,%edx
43e57a:	51                   	push   %ecx
43e57b:	8b 0d b0 12 45 00    	mov    0x4512b0,%ecx
43e581:	e8 2a 6d fd ff       	call   0x4152b0
43e586:	8b c8                	mov    %eax,%ecx
43e588:	e8 53 a7 fe ff       	call   0x428ce0
43e58d:	85 c0                	test   %eax,%eax
43e58f:	0f 88 8c 04 00 00    	js     0x43ea21
43e595:	ff 15 d4 21 45 00    	call   *0x4521d4
43e59b:	8d 85 30 f8 ff ff    	lea    -0x7d0(%ebp),%eax
43e5a1:	c7 85 30 f8 ff ff 14 	movl   $0x114,-0x7d0(%ebp)
43e5a8:	01 00 00
43e5ab:	50                   	push   %eax
43e5ac:	ff 15 58 22 45 00    	call   *0x452258
43e5b2:	85 c0                	test   %eax,%eax
43e5b4:	0f 84 67 04 00 00    	je     0x43ea21
43e5ba:	8b 85 34 f8 ff ff    	mov    -0x7cc(%ebp),%eax
43e5c0:	a3 d8 19 45 00       	mov    %eax,0x4519d8
43e5c5:	8b 85 38 f8 ff ff    	mov    -0x7c8(%ebp),%eax
43e5cb:	a3 dc 19 45 00       	mov    %eax,0x4519dc
43e5d0:	8b 85 3c f8 ff ff    	mov    -0x7c4(%ebp),%eax
43e5d6:	a3 e0 19 45 00       	mov    %eax,0x4519e0
43e5db:	8d 85 44 f8 ff ff    	lea    -0x7bc(%ebp),%eax
43e5e1:	68 50 2f 41 00       	push   $0x412f50
43e5e6:	50                   	push   %eax
43e5e7:	ff 15 60 23 45 00    	call   *0x452360
43e5ed:	83 c4 08             	add    $0x8,%esp
43e5f0:	85 c0                	test   %eax,%eax
43e5f2:	74 0c                	je     0x43e600
43e5f4:	50                   	push   %eax
43e5f5:	ff 15 ac 22 45 00    	call   *0x4522ac
43e5fb:	83 c4 04             	add    $0x4,%esp
43e5fe:	eb 02                	jmp    0x43e602
43e600:	33 c0                	xor    %eax,%eax
43e602:	a3 e4 19 45 00       	mov    %eax,0x4519e4
43e607:	8d 85 04 f8 ff ff    	lea    -0x7fc(%ebp),%eax
43e60d:	6a 1c                	push   $0x1c
43e60f:	50                   	push   %eax
43e610:	68 f0 e2 43 00       	push   $0x43e2f0
43e615:	ff 15 c4 21 45 00    	call   *0x4521c4
43e61b:	50                   	push   %eax
43e61c:	ff 15 90 21 45 00    	call   *0x452190
43e622:	85 c0                	test   %eax,%eax
43e624:	0f 84 f7 03 00 00    	je     0x43ea21
43e62a:	68 58 02 00 00       	push   $0x258
43e62f:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e635:	50                   	push   %eax
43e636:	ff b5 08 f8 ff ff    	push   -0x7f8(%ebp)
43e63c:	ff 15 54 21 45 00    	call   *0x452154
43e642:	85 c0                	test   %eax,%eax
43e644:	0f 84 d7 03 00 00    	je     0x43ea21
43e64a:	8d 8d 48 fb ff ff    	lea    -0x4b8(%ebp),%ecx
43e650:	8d 51 02             	lea    0x2(%ecx),%edx
43e653:	66 8b 01             	mov    (%ecx),%ax
43e656:	83 c1 02             	add    $0x2,%ecx
43e659:	66 85 c0             	test   %ax,%ax
43e65c:	75 f5                	jne    0x43e653
43e65e:	2b ca                	sub    %edx,%ecx
43e660:	c7 05 bc 12 45 00 00 	movl   $0x0,0x4512bc
43e667:	00 00 00
43e66a:	d1 f9                	sar    $1,%ecx
43e66c:	8d 41 01             	lea    0x1(%ecx),%eax
43e66f:	8d 34 00             	lea    (%eax,%eax,1),%esi
43e672:	3b c1                	cmp    %ecx,%eax
43e674:	0f 82 6b 03 00 00    	jb     0x43e9e5
43e67a:	83 f8 01             	cmp    $0x1,%eax
43e67d:	0f 82 62 03 00 00    	jb     0x43e9e5
43e683:	56                   	push   %esi
43e684:	6a 00                	push   $0x0
43e686:	ff 15 30 21 45 00    	call   *0x452130
43e68c:	8b c8                	mov    %eax,%ecx
43e68e:	89 0d bc 12 45 00    	mov    %ecx,0x4512bc
43e694:	85 c9                	test   %ecx,%ecx
43e696:	0f 84 23 03 00 00    	je     0x43e9bf
43e69c:	d1 ee                	shr    $1,%esi
43e69e:	8b c6                	mov    %esi,%eax
43e6a0:	f7 d8                	neg    %eax
43e6a2:	1b c0                	sbb    %eax,%eax
43e6a4:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e6a9:	05 57 00 07 80       	add    $0x80070057,%eax
43e6ae:	85 f6                	test   %esi,%esi
43e6b0:	74 10                	je     0x43e6c2
43e6b2:	51                   	push   %ecx
43e6b3:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e6b9:	8b d6                	mov    %esi,%edx
43e6bb:	50                   	push   %eax
43e6bc:	51                   	push   %ecx
43e6bd:	e8 ee 6b fd ff       	call   0x4152b0
43e6c2:	8b c8                	mov    %eax,%ecx
43e6c4:	e8 17 a6 fe ff       	call   0x428ce0
43e6c9:	85 c0                	test   %eax,%eax
43e6cb:	0f 88 50 03 00 00    	js     0x43ea21
43e6d1:	6a 00                	push   $0x0
43e6d3:	6a 00                	push   $0x0
43e6d5:	68 58 02 00 00       	push   $0x258
43e6da:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e6e0:	50                   	push   %eax
43e6e1:	6a 00                	push   $0x0
43e6e3:	6a 00                	push   $0x0
43e6e5:	6a 00                	push   $0x0
43e6e7:	6a 00                	push   $0x0
43e6e9:	ff 35 bc 12 45 00    	push   0x4512bc
43e6ef:	ff 15 e8 22 45 00    	call   *0x4522e8
43e6f5:	8d 8d 48 fb ff ff    	lea    -0x4b8(%ebp),%ecx
43e6fb:	83 c4 24             	add    $0x24,%esp
43e6fe:	8d 51 02             	lea    0x2(%ecx),%edx
43e701:	66 8b 01             	mov    (%ecx),%ax
43e704:	83 c1 02             	add    $0x2,%ecx
43e707:	66 85 c0             	test   %ax,%ax
43e70a:	75 f5                	jne    0x43e701
43e70c:	2b ca                	sub    %edx,%ecx
43e70e:	c7 05 b8 12 45 00 00 	movl   $0x0,0x4512b8
43e715:	00 00 00
43e718:	d1 f9                	sar    $1,%ecx
43e71a:	8d 41 01             	lea    0x1(%ecx),%eax
43e71d:	8d 34 00             	lea    (%eax,%eax,1),%esi
43e720:	3b c1                	cmp    %ecx,%eax
43e722:	0f 82 bd 02 00 00    	jb     0x43e9e5
43e728:	83 f8 01             	cmp    $0x1,%eax
43e72b:	0f 82 b4 02 00 00    	jb     0x43e9e5
43e731:	56                   	push   %esi
43e732:	6a 00                	push   $0x0
43e734:	ff 15 30 21 45 00    	call   *0x452130
43e73a:	8b c8                	mov    %eax,%ecx
43e73c:	89 0d b8 12 45 00    	mov    %ecx,0x4512b8
43e742:	85 c9                	test   %ecx,%ecx
43e744:	0f 84 75 02 00 00    	je     0x43e9bf
43e74a:	d1 ee                	shr    $1,%esi
43e74c:	8b c6                	mov    %esi,%eax
43e74e:	f7 d8                	neg    %eax
43e750:	1b c0                	sbb    %eax,%eax
43e752:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e757:	05 57 00 07 80       	add    $0x80070057,%eax
43e75c:	85 f6                	test   %esi,%esi
43e75e:	74 10                	je     0x43e770
43e760:	51                   	push   %ecx
43e761:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e767:	8b d6                	mov    %esi,%edx
43e769:	50                   	push   %eax
43e76a:	51                   	push   %ecx
43e76b:	e8 40 6b fd ff       	call   0x4152b0
43e770:	8b c8                	mov    %eax,%ecx
43e772:	e8 69 a5 fe ff       	call   0x428ce0
43e777:	85 c0                	test   %eax,%eax
43e779:	0f 88 a2 02 00 00    	js     0x43ea21
43e77f:	a1 e0 19 45 00       	mov    0x4519e0,%eax
43e784:	33 f6                	xor    %esi,%esi
43e786:	8b 0d dc 19 45 00    	mov    0x4519dc,%ecx
43e78c:	8b 15 d8 19 45 00    	mov    0x4519d8,%edx
43e792:	56                   	push   %esi
43e793:	50                   	push   %eax
43e794:	51                   	push   %ecx
43e795:	52                   	push   %edx
43e796:	68 44 2f 41 00       	push   $0x412f44
43e79b:	68 68 2f 41 00       	push   $0x412f68
43e7a0:	a3 f0 19 45 00       	mov    %eax,0x4519f0
43e7a5:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e7ab:	68 b0 04 00 00       	push   $0x4b0
43e7b0:	50                   	push   %eax
43e7b1:	89 15 e8 19 45 00    	mov    %edx,0x4519e8
43e7b7:	89 0d ec 19 45 00    	mov    %ecx,0x4519ec
43e7bd:	c7 05 f4 19 45 00 00 	movl   $0x0,0x4519f4
43e7c4:	00 00 00
43e7c7:	66 89 b5 48 fb ff ff 	mov    %si,-0x4b8(%ebp)
43e7ce:	e8 cd a6 fe ff       	call   0x428ea0
43e7d3:	83 c4 20             	add    $0x20,%esp
43e7d6:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e7dc:	b9 58 02 00 00       	mov    $0x258,%ecx
43e7e1:	66 39 30             	cmp    %si,(%eax)
43e7e4:	74 08                	je     0x43e7ee
43e7e6:	83 c0 02             	add    $0x2,%eax
43e7e9:	83 e9 01             	sub    $0x1,%ecx
43e7ec:	75 f3                	jne    0x43e7e1
43e7ee:	8b c1                	mov    %ecx,%eax
43e7f0:	be 58 02 00 00       	mov    $0x258,%esi
43e7f5:	f7 d8                	neg    %eax
43e7f7:	1b c0                	sbb    %eax,%eax
43e7f9:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e7fe:	05 57 00 07 80       	add    $0x80070057,%eax
43e803:	85 c9                	test   %ecx,%ecx
43e805:	74 30                	je     0x43e837
43e807:	8b d1                	mov    %ecx,%edx
43e809:	8d 81 a8 fd ff ff    	lea    -0x258(%ecx),%eax
43e80f:	f7 da                	neg    %edx
43e811:	51                   	push   %ecx
43e812:	1b d2                	sbb    %edx,%edx
43e814:	23 d0                	and    %eax,%edx
43e816:	8b c6                	mov    %esi,%eax
43e818:	2b c1                	sub    %ecx,%eax
43e81a:	03 d6                	add    %esi,%edx
43e81c:	68 a4 2f 41 00       	push   $0x412fa4
43e821:	51                   	push   %ecx
43e822:	03 c0                	add    %eax,%eax
43e824:	f7 d9                	neg    %ecx
43e826:	1b c9                	sbb    %ecx,%ecx
43e828:	23 c8                	and    %eax,%ecx
43e82a:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e830:	03 c8                	add    %eax,%ecx
43e832:	e8 79 6a fd ff       	call   0x4152b0
43e837:	8b c8                	mov    %eax,%ecx
43e839:	e8 a2 a4 fe ff       	call   0x428ce0
43e83e:	8b ce                	mov    %esi,%ecx
43e840:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e846:	66 83 38 00          	cmpw   $0x0,(%eax)
43e84a:	74 08                	je     0x43e854
43e84c:	83 c0 02             	add    $0x2,%eax
43e84f:	83 e9 01             	sub    $0x1,%ecx
43e852:	75 f2                	jne    0x43e846
43e854:	8b c1                	mov    %ecx,%eax
43e856:	f7 d8                	neg    %eax
43e858:	1b c0                	sbb    %eax,%eax
43e85a:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e85f:	05 57 00 07 80       	add    $0x80070057,%eax
43e864:	85 c9                	test   %ecx,%ecx
43e866:	74 30                	je     0x43e898
43e868:	8b d1                	mov    %ecx,%edx
43e86a:	8d 81 a8 fd ff ff    	lea    -0x258(%ecx),%eax
43e870:	f7 da                	neg    %edx
43e872:	51                   	push   %ecx
43e873:	1b d2                	sbb    %edx,%edx
43e875:	23 d0                	and    %eax,%edx
43e877:	8b c6                	mov    %esi,%eax
43e879:	2b c1                	sub    %ecx,%eax
43e87b:	03 d6                	add    %esi,%edx
43e87d:	68 b4 2f 41 00       	push   $0x412fb4
43e882:	51                   	push   %ecx
43e883:	03 c0                	add    %eax,%eax
43e885:	f7 d9                	neg    %ecx
43e887:	1b c9                	sbb    %ecx,%ecx
43e889:	23 c8                	and    %eax,%ecx
43e88b:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e891:	03 c8                	add    %eax,%ecx
43e893:	e8 18 6a fd ff       	call   0x4152b0
43e898:	8b c8                	mov    %eax,%ecx
43e89a:	e8 41 a4 fe ff       	call   0x428ce0
43e89f:	8b ce                	mov    %esi,%ecx
43e8a1:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e8a7:	66 83 38 00          	cmpw   $0x0,(%eax)
43e8ab:	74 08                	je     0x43e8b5
43e8ad:	83 c0 02             	add    $0x2,%eax
43e8b0:	83 e9 01             	sub    $0x1,%ecx
43e8b3:	75 f2                	jne    0x43e8a7
43e8b5:	8b c1                	mov    %ecx,%eax
43e8b7:	f7 d8                	neg    %eax
43e8b9:	1b c0                	sbb    %eax,%eax
43e8bb:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
43e8c0:	05 57 00 07 80       	add    $0x80070057,%eax
43e8c5:	85 c9                	test   %ecx,%ecx
43e8c7:	74 2e                	je     0x43e8f7
43e8c9:	8b d1                	mov    %ecx,%edx
43e8cb:	8d 81 a8 fd ff ff    	lea    -0x258(%ecx),%eax
43e8d1:	f7 da                	neg    %edx
43e8d3:	51                   	push   %ecx
43e8d4:	1b d2                	sbb    %edx,%edx
43e8d6:	23 d0                	and    %eax,%edx
43e8d8:	8d 85 48 fb ff ff    	lea    -0x4b8(%ebp),%eax
43e8de:	03 d6                	add    %esi,%edx
43e8e0:	2b f1                	sub    %ecx,%esi
43e8e2:	68 c0 2f 41 00       	push   $0x412fc0
43e8e7:	51                   	push   %ecx
43e8e8:	03 f6                	add    %esi,%esi
43e8ea:	f7 d9                	neg    %ecx
43e8ec:	1b c9                	sbb    %ecx,%ecx
43e8ee:	23 ce                	and    %esi,%ecx
43e8f0:	03 c8                	add    %eax,%ecx
43e8f2:	e8 b9 69 fd ff       	call   0x4152b0
43e8f7:	8b c8                	mov    %eax,%ecx
43e8f9:	e8 e2 a3 fe ff       	call   0x428ce0
43e8fe:	8d 8d 48 fb ff ff    	lea    -0x4b8(%ebp),%ecx
43e904:	8d 51 02             	lea    0x2(%ecx),%edx
43e907:	66 8b 01             	mov    (%ecx),%ax
43e90a:	83 c1 02             	add    $0x2,%ecx
43e90d:	66 85 c0             	test   %ax,%ax
43e910:	75 f5                	jne    0x43e907
43e912:	2b ca                	sub    %edx,%ecx
43e914:	c7 05 c0 12 45 00 00 	movl   $0x0,0x4512c0
43e91b:	00 00 00
43e91e:	d1 f9                	sar    $1,%ecx
43e920:	8d 41 01             	lea    0x1(%ecx),%eax
43e923:	8d 34 00             	lea    (%eax,%eax,1),%esi
43e926:	3b c1                	cmp    %ecx,%eax
43e928:	0f 82 b7 00 00 00    	jb     0x43e9e5
43e92e:	83 f8 01             	cmp    $0x1,%eax
43e931:	0f 82 ae 00 00 00    	jb     0x43e9e5
43e937:	56                   	push   %esi
43e938:	6a 00                	push   $0x0
43e93a:	ff 15 30 21 45 00    	call   *0x452130
43e940:	8b c8                	mov    %eax,%ecx
43e942:	89 0d c0 12 45 00    	mov    %ecx,0x4512c0
43e948:	85 c9                	test   %ecx,%ecx
43e94a:	74 73                	je     0x43e9bf
43e94c:	d1 ee                	shr    $1,%esi