40b676:	85 c0                	test   %eax,%eax
40b678:	0f 4e f0             	cmovle %eax,%esi
40b67b:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b680:	85 f6                	test   %esi,%esi
40b682:	0f 49 f0             	cmovns %eax,%esi
40b685:	56                   	push   %esi
40b686:	6a 79                	push   $0x79
40b688:	68 d4 ed 44 00       	push   $0x44edd4
40b68d:	e8 41 81 ff ff       	call   0x4037d3
40b692:	68 34 ef 44 00       	push   $0x44ef34
40b697:	e9 93 fd ff ff       	jmp    0x40b42f
40b69c:	0f b7 8d d8 fe ff ff 	movzwl -0x128(%ebp),%ecx
40b6a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b6a6:	83 c1 18             	add    $0x18,%ecx
40b6a9:	03 c1                	add    %ecx,%eax
40b6ab:	33 c9                	xor    %ecx,%ecx
40b6ad:	51                   	push   %ecx
40b6ae:	51                   	push   %ecx
40b6af:	51                   	push   %ecx
40b6b0:	50                   	push   %eax
40b6b1:	ff 33                	push   (%ebx)
40b6b3:	ff d7                	call   *%edi
40b6b5:	85 c0                	test   %eax,%eax
40b6b7:	75 38                	jne    0x40b6f1
40b6b9:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40b6bf:	0f b7 f0             	movzwl %ax,%esi
40b6c2:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40b6c8:	85 c0                	test   %eax,%eax
40b6ca:	0f 4e f0             	cmovle %eax,%esi
40b6cd:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b6d2:	85 f6                	test   %esi,%esi
40b6d4:	0f 49 f0             	cmovns %eax,%esi
40b6d7:	56                   	push   %esi
40b6d8:	68 84 00 00 00       	push   $0x84
40b6dd:	68 d4 ed 44 00       	push   $0x44edd4
40b6e2:	e8 ec 80 ff ff       	call   0x4037d3
40b6e7:	68 54 ef 44 00       	push   $0x44ef54
40b6ec:	e9 3e fd ff ff       	jmp    0x40b42f
40b6f1:	33 ff                	xor    %edi,%edi
40b6f3:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
40b6f9:	57                   	push   %edi
40b6fa:	50                   	push   %eax
40b6fb:	6a 28                	push   $0x28
40b6fd:	8d 85 9c fe ff ff    	lea    -0x164(%ebp),%eax
40b703:	89 bd 84 fe ff ff    	mov    %edi,-0x17c(%ebp)
40b709:	50                   	push   %eax
40b70a:	ff 33                	push   (%ebx)
40b70c:	ff d6                	call   *%esi
40b70e:	85 c0                	test   %eax,%eax
40b710:	0f 84 63 03 00 00    	je     0x40ba79
40b716:	33 c9                	xor    %ecx,%ecx
40b718:	41                   	inc    %ecx
40b719:	83 bd 98 fe ff ff 28 	cmpl   $0x28,-0x168(%ebp)
40b720:	0f 82 2e 03 00 00    	jb     0x40ba54
40b726:	8d 85 9c fe ff ff    	lea    -0x164(%ebp),%eax
40b72c:	81 38 2e 77 69 78    	cmpl   $0x7869772e,(%eax)
40b732:	75 09                	jne    0x40b73d
40b734:	81 78 04 62 75 72 6e 	cmpl   $0x6e727562,0x4(%eax)
40b73b:	74 43                	je     0x40b780
40b73d:	0f b7 85 ca fe ff ff 	movzwl -0x136(%ebp),%eax
40b744:	3b c8                	cmp    %eax,%ecx
40b746:	0f 83 cb 02 00 00    	jae    0x40ba17
40b74c:	6a 00                	push   $0x0
40b74e:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
40b754:	47                   	inc    %edi
40b755:	50                   	push   %eax
40b756:	6a 28                	push   $0x28
40b758:	8d 85 9c fe ff ff    	lea    -0x164(%ebp),%eax
40b75e:	89 bd 84 fe ff ff    	mov    %edi,-0x17c(%ebp)
40b764:	50                   	push   %eax
40b765:	ff 33                	push   (%ebx)
40b767:	41                   	inc    %ecx
40b768:	89 8d 90 fe ff ff    	mov    %ecx,-0x170(%ebp)
40b76e:	ff d6                	call   *%esi
40b770:	85 c0                	test   %eax,%eax
40b772:	0f 84 01 03 00 00    	je     0x40ba79
40b778:	8b 8d 90 fe ff ff    	mov    -0x170(%ebp),%ecx
40b77e:	eb 99                	jmp    0x40b719
40b780:	83 bd ac fe ff ff 34 	cmpl   $0x34,-0x154(%ebp)
40b787:	73 27                	jae    0x40b7b0
40b789:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40b78e:	57                   	push   %edi
40b78f:	68 ac 00 00 00       	push   $0xac
40b794:	68 d4 ed 44 00       	push   $0x44edd4
40b799:	8b f7                	mov    %edi,%esi
40b79b:	e8 33 80 ff ff       	call   0x4037d3
40b7a0:	ff b5 ac fe ff ff    	push   -0x154(%ebp)
40b7a6:	68 10 f0 44 00       	push   $0x44f010
40b7ab:	e9 c6 02 00 00       	jmp    0x40ba76
40b7b0:	6a 01                	push   $0x1
40b7b2:	ff b5 ac fe ff ff    	push   -0x154(%ebp)
40b7b8:	e8 17 81 ff ff       	call   0x4038d4
40b7bd:	8b f8                	mov    %eax,%edi
40b7bf:	89 bd 94 fe ff ff    	mov    %edi,-0x16c(%ebp)
40b7c5:	85 ff                	test   %edi,%edi
40b7c7:	75 22                	jne    0x40b7eb
40b7c9:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40b7ce:	53                   	push   %ebx
40b7cf:	68 b1 00 00 00       	push   $0xb1
40b7d4:	68 d4 ed 44 00       	push   $0x44edd4
40b7d9:	8b f3                	mov    %ebx,%esi
40b7db:	e8 f3 7f ff ff       	call   0x4037d3
40b7e0:	68 40 f0 44 00       	push   $0x44f040
40b7e5:	53                   	push   %ebx
40b7e6:	e9 02 03 00 00       	jmp    0x40baed
40b7eb:	33 c0                	xor    %eax,%eax
40b7ed:	50                   	push   %eax
40b7ee:	50                   	push   %eax
40b7ef:	50                   	push   %eax
40b7f0:	ff b5 b0 fe ff ff    	push   -0x150(%ebp)
40b7f6:	ff 33                	push   (%ebx)
40b7f8:	ff 15 f0 b1 44 00    	call   *0x44b1f0
40b7fe:	85 c0                	test   %eax,%eax
40b800:	75 3e                	jne    0x40b840
40b802:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40b808:	0f b7 f0             	movzwl %ax,%esi
40b80b:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40b811:	85 c0                	test   %eax,%eax
40b813:	0f 4e f0             	cmovle %eax,%esi
40b816:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b81b:	85 f6                	test   %esi,%esi
40b81d:	0f 49 f0             	cmovns %eax,%esi
40b820:	56                   	push   %esi
40b821:	68 b7 00 00 00       	push   $0xb7
40b826:	68 d4 ed 44 00       	push   $0x44edd4
40b82b:	e8 a3 7f ff ff       	call   0x4037d3
40b830:	68 f0 ee 44 00       	push   $0x44eef0
40b835:	56                   	push   %esi
40b836:	e8 f4 48 03 00       	call   0x44012f
40b83b:	e9 ff 01 00 00       	jmp    0x40ba3f
40b840:	8b 85 b0 fe ff ff    	mov    -0x150(%ebp),%eax
40b846:	83 c0 1c             	add    $0x1c,%eax
40b849:	6a 00                	push   $0x0
40b84b:	89 85 90 fe ff ff    	mov    %eax,-0x170(%ebp)
40b851:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
40b857:	50                   	push   %eax
40b858:	ff b5 ac fe ff ff    	push   -0x154(%ebp)
40b85e:	57                   	push   %edi
40b85f:	ff 33                	push   (%ebx)
40b861:	ff d6                	call   *%esi
40b863:	85 c0                	test   %eax,%eax
40b865:	75 35                	jne    0x40b89c
40b867:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40b86d:	0f b7 f0             	movzwl %ax,%esi
40b870:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40b876:	85 c0                	test   %eax,%eax
40b878:	0f 4e f0             	cmovle %eax,%esi
40b87b:	b8 05 40 00 80       	mov    $0x80004005,%eax
40b880:	85 f6                	test   %esi,%esi
40b882:	0f 49 f0             	cmovns %eax,%esi
40b885:	56                   	push   %esi
40b886:	68 c0 00 00 00       	push   $0xc0
40b88b:	68 d4 ed 44 00       	push   $0x44edd4
40b890:	e8 3e 7f ff ff       	call   0x4037d3
40b895:	68 6c f0 44 00       	push   $0x44f06c
40b89a:	eb 99                	jmp    0x40b835
40b89c:	8b 85 ac fe ff ff    	mov    -0x154(%ebp),%eax
40b8a2:	3b 85 98 fe ff ff    	cmp    -0x168(%ebp),%eax
40b8a8:	76 21                	jbe    0x40b8cb
40b8aa:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40b8af:	57                   	push   %edi
40b8b0:	68 c5 00 00 00       	push   $0xc5
40b8b5:	68 d4 ed 44 00       	push   $0x44edd4
40b8ba:	8b f7                	mov    %edi,%esi
40b8bc:	e8 12 7f ff ff       	call   0x4037d3
40b8c1:	68 8c f0 44 00       	push   $0x44f08c
40b8c6:	e9 68 01 00 00       	jmp    0x40ba33
40b8cb:	83 7f 04 02          	cmpl   $0x2,0x4(%edi)
40b8cf:	74 39                	je     0x40b90a
40b8d1:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40b8d6:	57                   	push   %edi
40b8d7:	68 cc 00 00 00       	push   $0xcc
40b8dc:	68 d4 ed 44 00       	push   $0x44edd4
40b8e1:	8b f7                	mov    %edi,%esi
40b8e3:	e8 eb 7e ff ff       	call   0x4037d3
40b8e8:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
40b8ee:	ff 70 04             	push   0x4(%eax)
40b8f1:	68 b4 f0 44 00       	push   $0x44f0b4
40b8f6:	57                   	push   %edi
40b8f7:	e8 33 48 03 00       	call   0x44012f
40b8fc:	8b bd 94 fe ff ff    	mov    -0x16c(%ebp),%edi
40b902:	83 c4 0c             	add    $0xc,%esp
40b905:	e9 37 01 00 00       	jmp    0x40ba41
40b90a:	8d 85 74 fe ff ff    	lea    -0x18c(%ebp),%eax
40b910:	50                   	push   %eax
40b911:	ff 73 04             	push   0x4(%ebx)
40b914:	e8 b2 8f 03 00       	call   0x4448cb
40b919:	8b f0                	mov    %eax,%esi
40b91b:	85 f6                	test   %esi,%esi
40b91d:	79 0a                	jns    0x40b929
40b91f:	68 ec f0 44 00       	push   $0x44f0ec
40b924:	e9 0c ff ff ff       	jmp    0x40b835
40b929:	8b 57 18             	mov    0x18(%edi),%edx
40b92c:	89 53 08             	mov    %edx,0x8(%ebx)
40b92f:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
40b933:	74 08                	je     0x40b93d
40b935:	8b 47 24             	mov    0x24(%edi),%eax
40b938:	03 47 20             	add    0x20(%edi),%eax
40b93b:	eb 19                	jmp    0x40b956
40b93d:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
40b943:	85 c9                	test   %ecx,%ecx
40b945:	74 0a                	je     0x40b951
40b947:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
40b94d:	03 c1                	add    %ecx,%eax
40b94f:	eb 05                	jmp    0x40b956
40b951:	8b 47 30             	mov    0x30(%edi),%eax
40b954:	03 c2                	add    %edx,%eax
40b956:	89 43 0c             	mov    %eax,0xc(%ebx)
40b959:	8b 85 74 fe ff ff    	mov    -0x18c(%ebp),%eax
40b95f:	89 43 10             	mov    %eax,0x10(%ebx)
40b962:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
40b968:	89 43 14             	mov    %eax,0x14(%ebx)
40b96b:	8b 85 80 fe ff ff    	mov    -0x180(%ebp),%eax
40b971:	89 43 18             	mov    %eax,0x18(%ebx)
40b974:	8b 85 7c fe ff ff    	mov    -0x184(%ebp),%eax
40b97a:	89 43 1c             	mov    %eax,0x1c(%ebx)
40b97d:	8b 85 90 fe ff ff    	mov    -0x170(%ebp),%eax
40b983:	89 43 20             	mov    %eax,0x20(%ebx)
40b986:	8b 47 1c             	mov    0x1c(%edi),%eax
40b989:	89 43 24             	mov    %eax,0x24(%ebx)
40b98c:	8b 47 20             	mov    0x20(%edi),%eax
40b98f:	89 43 28             	mov    %eax,0x28(%ebx)
40b992:	8b 47 24             	mov    0x24(%edi),%eax
40b995:	89 43 2c             	mov    %eax,0x2c(%ebx)
40b998:	8b 47 28             	mov    0x28(%edi),%eax
40b99b:	89 43 30             	mov    %eax,0x30(%ebx)
40b99e:	8b 47 2c             	mov    0x2c(%edi),%eax
40b9a1:	89 43 34             	mov    %eax,0x34(%ebx)
40b9a4:	6a 01                	push   $0x1
40b9a6:	c1 e0 02             	shl    $0x2,%eax
40b9a9:	50                   	push   %eax
40b9aa:	e8 25 7f ff ff       	call   0x4038d4
40b9af:	8b c8                	mov    %eax,%ecx
40b9b1:	89 4b 38             	mov    %ecx,0x38(%ebx)
40b9b4:	85 c9                	test   %ecx,%ecx
40b9b6:	75 22                	jne    0x40b9da
40b9b8:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40b9bd:	53                   	push   %ebx
40b9be:	68 ef 00 00 00       	push   $0xef
40b9c3:	68 d4 ed 44 00       	push   $0x44edd4
40b9c8:	8b f3                	mov    %ebx,%esi
40b9ca:	e8 04 7e ff ff       	call   0x4037d3
40b9cf:	68 10 f1 44 00       	push   $0x44f110
40b9d4:	53                   	push   %ebx
40b9d5:	e9 5c fe ff ff       	jmp    0x40b836
40b9da:	8b 43 34             	mov    0x34(%ebx),%eax
40b9dd:	c1 e0 02             	shl    $0x2,%eax
40b9e0:	50                   	push   %eax
40b9e1:	8d 47 30             	lea    0x30(%edi),%eax
40b9e4:	50                   	push   %eax
40b9e5:	51                   	push   %ecx
40b9e6:	e8 05 37 02 00       	call   0x42f0f0
40b9eb:	83 c4 0c             	add    $0xc,%esp
40b9ee:	8d 47 08             	lea    0x8(%edi),%eax
40b9f1:	50                   	push   %eax
40b9f2:	e8 0f f7 ff ff       	call   0x40b106
40b9f7:	8b f0                	mov    %eax,%esi
40b9f9:	85 f6                	test   %esi,%esi
40b9fb:	79 44                	jns    0x40ba41
40b9fd:	56                   	push   %esi
40b9fe:	68 f5 00 00 00       	push   $0xf5
40ba03:	68 d4 ed 44 00       	push   $0x44edd4
40ba08:	e8 c6 7d ff ff       	call   0x4037d3
40ba0d:	68 40 f1 44 00       	push   $0x44f140
40ba12:	e9 1e fe ff ff       	jmp    0x40b835
40ba17:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40ba1c:	57                   	push   %edi
40ba1d:	68 a0 00 00 00       	push   $0xa0
40ba22:	68 d4 ed 44 00       	push   $0x44edd4
40ba27:	8b f7                	mov    %edi,%esi
40ba29:	e8 a5 7d ff ff       	call   0x4037d3
40ba2e:	68 f0 ef 44 00       	push   $0x44eff0
40ba33:	57                   	push   %edi
40ba34:	e8 f6 46 03 00       	call   0x44012f
40ba39:	8b bd 94 fe ff ff    	mov    -0x16c(%ebp),%edi
40ba3f:	59                   	pop    %ecx
40ba40:	59                   	pop    %ecx
40ba41:	85 ff                	test   %edi,%edi
40ba43:	0f 84 ab 00 00 00    	je     0x40baf4
40ba49:	57                   	push   %edi
40ba4a:	e8 4a 7f ff ff       	call   0x403999
40ba4f:	e9 a0 00 00 00       	jmp    0x40baf4
40ba54:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40ba59:	57                   	push   %edi
40ba5a:	68 92 00 00 00       	push   $0x92
40ba5f:	68 d4 ed 44 00       	push   $0x44edd4
40ba64:	8b f7                	mov    %edi,%esi
40ba66:	e8 68 7d ff ff       	call   0x4037d3
40ba6b:	ff b5 84 fe ff ff    	push   -0x17c(%ebp)
40ba71:	68 ac ef 44 00       	push   $0x44efac
40ba76:	57                   	push   %edi
40ba77:	eb 35                	jmp    0x40baae
40ba79:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40ba7f:	0f b7 f0             	movzwl %ax,%esi
40ba82:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40ba88:	85 c0                	test   %eax,%eax
40ba8a:	0f 4e f0             	cmovle %eax,%esi
40ba8d:	b8 05 40 00 80       	mov    $0x80004005,%eax
40ba92:	85 f6                	test   %esi,%esi
40ba94:	0f 49 f0             	cmovns %eax,%esi
40ba97:	56                   	push   %esi
40ba98:	68 8d 00 00 00       	push   $0x8d
40ba9d:	68 d4 ed 44 00       	push   $0x44edd4
40baa2:	e8 2c 7d ff ff       	call   0x4037d3
40baa7:	57                   	push   %edi
40baa8:	68 7c ef 44 00       	push   $0x44ef7c
40baad:	56                   	push   %esi
40baae:	e8 7c 46 03 00       	call   0x44012f
40bab3:	83 c4 0c             	add    $0xc,%esp
40bab6:	eb 3c                	jmp    0x40baf4
40bab8:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40babd:	57                   	push   %edi
40babe:	6a 64                	push   $0x64
40bac0:	68 d4 ed 44 00       	push   $0x44edd4
40bac5:	8b f7                	mov    %edi,%esi
40bac7:	e8 07 7d ff ff       	call   0x4037d3
40bacc:	68 c0 ee 44 00       	push   $0x44eec0
40bad1:	eb 19                	jmp    0x40baec
40bad3:	bf 0d 00 07 80       	mov    $0x8007000d,%edi
40bad8:	57                   	push   %edi
40bad9:	6a 4e                	push   $0x4e
40badb:	68 d4 ed 44 00       	push   $0x44edd4
40bae0:	8b f7                	mov    %edi,%esi
40bae2:	e8 ec 7c ff ff       	call   0x4037d3
40bae7:	68 50 ee 44 00       	push   $0x44ee50
40baec:	57                   	push   %edi
40baed:	e8 3d 46 03 00       	call   0x44012f
40baf2:	59                   	pop    %ecx
40baf3:	59                   	pop    %ecx
40baf4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40baf7:	8b c6                	mov    %esi,%eax
40baf9:	5f                   	pop    %edi
40bafa:	5e                   	pop    %esi
40bafb:	33 cd                	xor    %ebp,%ecx
40bafd:	5b                   	pop    %ebx
40bafe:	e8 33 23 02 00       	call   0x42de36
40bb03:	8b e5                	mov    %ebp,%esp
40bb05:	5d                   	pop    %ebp
40bb06:	c2 0c 00             	ret    $0xc
40bb09:	55                   	push   %ebp
40bb0a:	8b ec                	mov    %esp,%ebp
40bb0c:	56                   	push   %esi
40bb0d:	8b 75 08             	mov    0x8(%ebp),%esi
40bb10:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40bb14:	74 08                	je     0x40bb1e
40bb16:	ff 76 38             	push   0x38(%esi)
40bb19:	e8 7b 7e ff ff       	call   0x403999
40bb1e:	6a 40                	push   $0x40
40bb20:	6a 00                	push   $0x0
40bb22:	56                   	push   %esi