40a832:	8b 07                	mov    (%edi),%eax
40a834:	8b 7d 10             	mov    0x10(%ebp),%edi
40a837:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40a83b:	85 d2                	test   %edx,%edx
40a83d:	74 26                	je     0x40a865
40a83f:	90                   	nop
40a840:	8b 7c 24 30          	mov    0x30(%esp),%edi
40a844:	66 8b 00             	mov    (%eax),%ax
40a847:	66 3b 07             	cmp    (%edi),%ax
40a84a:	8b 7d 10             	mov    0x10(%ebp),%edi
40a84d:	8b 44 24 3c          	mov    0x3c(%esp),%eax
40a851:	75 19                	jne    0x40a86c
40a853:	83 44 24 30 02       	addl   $0x2,0x30(%esp)
40a858:	83 c0 02             	add    $0x2,%eax
40a85b:	ff 4c 24 40          	decl   0x40(%esp)
40a85f:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40a863:	75 db                	jne    0x40a840
40a865:	3b 51 04             	cmp    0x4(%ecx),%edx
40a868:	72 0e                	jb     0x40a878
40a86a:	eb 2f                	jmp    0x40a89b
40a86c:	8b 54 24 30          	mov    0x30(%esp),%edx
40a870:	66 8b 00             	mov    (%eax),%ax
40a873:	66 3b 02             	cmp    (%edx),%ax
40a876:	73 23                	jae    0x40a89b
40a878:	8b f1                	mov    %ecx,%esi
40a87a:	8b 4c 24 48          	mov    0x48(%esp),%ecx
40a87e:	8b 46 1c             	mov    0x1c(%esi),%eax
40a881:	89 01                	mov    %eax,(%ecx)
40a883:	a1 70 72 4c 00       	mov    0x4c7270,%eax
40a888:	89 46 1c             	mov    %eax,0x1c(%esi)
40a88b:	89 35 70 72 4c 00    	mov    %esi,0x4c7270
40a891:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
40a895:	0f 84 c7 fd ff ff    	je     0x40a662
40a89b:	8b 4c 24 38          	mov    0x38(%esp),%ecx
40a89f:	89 71 18             	mov    %esi,0x18(%ecx)
40a8a2:	a1 70 72 4c 00       	mov    0x4c7270,%eax
40a8a7:	89 44 24 38          	mov    %eax,0x38(%esp)
40a8ab:	8b 70 18             	mov    0x18(%eax),%esi
40a8ae:	8b 44 24 18          	mov    0x18(%esp),%eax
40a8b2:	89 74 24 34          	mov    %esi,0x34(%esp)
40a8b6:	89 35 70 72 4c 00    	mov    %esi,0x4c7270
40a8bc:	e9 3f fd ff ff       	jmp    0x40a600
40a8c1:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40a8c6:	0f 85 88 06 00 00    	jne    0x40af54
40a8cc:	6a 18                	push   $0x18
40a8ce:	e8 23 67 01 00       	call   0x420ff6
40a8d3:	8b f0                	mov    %eax,%esi
40a8d5:	83 c4 04             	add    $0x4,%esp
40a8d8:	85 f6                	test   %esi,%esi
40a8da:	0f 84 08 0e 00 00    	je     0x40b6e8
40a8e0:	68 88 74 4c 00       	push   $0x4c7488
40a8e5:	8b ce                	mov    %esi,%ecx
40a8e7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40a8ee:	e8 cd f1 ff ff       	call   0x409ac0
40a8f3:	8b 44 24 08          	mov    0x8(%esp),%eax
40a8f7:	89 46 10             	mov    %eax,0x10(%esi)
40a8fa:	8b c6                	mov    %esi,%eax
40a8fc:	8b 74 24 24          	mov    0x24(%esp),%esi
40a900:	89 44 24 08          	mov    %eax,0x8(%esp)
40a904:	89 44 24 28          	mov    %eax,0x28(%esp)
40a908:	e9 2d f9 ff ff       	jmp    0x40a23a
40a90d:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40a912:	0f 85 d7 0d 00 00    	jne    0x40b6ef
40a918:	89 44 24 4c          	mov    %eax,0x4c(%esp)
40a91c:	e9 2b f9 ff ff       	jmp    0x40a24c
40a921:	8b 7c 24 08          	mov    0x8(%esp),%edi
40a925:	8b 77 08             	mov    0x8(%edi),%esi
40a928:	8b 47 10             	mov    0x10(%edi),%eax
40a92b:	89 44 24 78          	mov    %eax,0x78(%esp)
40a92f:	85 f6                	test   %esi,%esi
40a931:	0f 85 e6 09 00 00    	jne    0x40b31d
40a937:	8b 47 0c             	mov    0xc(%edi),%eax
40a93a:	83 f8 05             	cmp    $0x5,%eax
40a93d:	0f 8d 42 0b 00 00    	jge    0x40b485
40a943:	57                   	push   %edi
40a944:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
40a94b:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a951:	e8 16 67 01 00       	call   0x42106c
40a956:	8b 44 24 7c          	mov    0x7c(%esp),%eax
40a95a:	83 c4 04             	add    $0x4,%esp
40a95d:	8b f8                	mov    %eax,%edi
40a95f:	85 c0                	test   %eax,%eax
40a961:	75 c2                	jne    0x40a925
40a963:	8b 7c 24 18          	mov    0x18(%esp),%edi
40a967:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40a96b:	e9 47 f8 ff ff       	jmp    0x40a1b7
40a970:	8b d0                	mov    %eax,%edx
40a972:	e9 ed f9 ff ff       	jmp    0x40a364
40a977:	83 3d 94 74 4c 00 04 	cmpl   $0x4,0x4c7494
40a97e:	0f 85 9e fb ff ff    	jne    0x40a522
40a984:	e9 1f 5e 03 00       	jmp    0x4407a8
40a989:	8b 46 0c             	mov    0xc(%esi),%eax
40a98c:	ff 08                	decl   (%eax)
40a98e:	8b 46 0c             	mov    0xc(%esi),%eax
40a991:	83 38 00             	cmpl   $0x0,(%eax)
40a994:	0f 84 21 5e 03 00    	je     0x4407bb
40a99a:	56                   	push   %esi
40a99b:	e8 cc 66 01 00       	call   0x42106c
40a9a0:	83 c4 04             	add    $0x4,%esp
40a9a3:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
40a9aa:	e9 7e fb ff ff       	jmp    0x40a52d
40a9af:	8b c2                	mov    %edx,%eax
40a9b1:	89 54 24 34          	mov    %edx,0x34(%esp)
40a9b5:	e9 22 fa ff ff       	jmp    0x40a3dc
40a9ba:	83 44 24 30 02       	addl   $0x2,0x30(%esp)
40a9bf:	83 c0 02             	add    $0x2,%eax
40a9c2:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40a9c6:	49                   	dec    %ecx
40a9c7:	0f 85 03 fe ff ff    	jne    0x40a7d0
40a9cd:	33 c0                	xor    %eax,%eax
40a9cf:	e9 7b fc ff ff       	jmp    0x40a64f
40a9d4:	8d 41 01             	lea    0x1(%ecx),%eax
40a9d7:	be 0d 00 00 00       	mov    $0xd,%esi
40a9dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a9df:	89 01                	mov    %eax,(%ecx)
40a9e1:	e9 85 f7 ff ff       	jmp    0x40a16b
40a9e6:	89 32                	mov    %esi,(%edx)
40a9e8:	c6 44 24 59 00       	movb   $0x0,0x59(%esp)
40a9ed:	e9 dd fa ff ff       	jmp    0x40a4cf
40a9f2:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40a9f7:	0f 85 cf 06 00 00    	jne    0x40b0cc
40a9fd:	6a 18                	push   $0x18
40a9ff:	e8 f2 65 01 00       	call   0x420ff6
40aa04:	8b f0                	mov    %eax,%esi
40aa06:	83 c4 04             	add    $0x4,%esp
40aa09:	85 f6                	test   %esi,%esi
40aa0b:	0f 84 c8 0c 00 00    	je     0x40b6d9
40aa11:	68 88 74 4c 00       	push   $0x4c7488
40aa16:	8b ce                	mov    %esi,%ecx
40aa18:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40aa1f:	e8 9c f0 ff ff       	call   0x409ac0
40aa24:	8b 44 24 08          	mov    0x8(%esp),%eax
40aa28:	8b d6                	mov    %esi,%edx
40aa2a:	89 46 10             	mov    %eax,0x10(%esi)
40aa2d:	8b 74 24 24          	mov    0x24(%esp),%esi
40aa31:	89 54 24 08          	mov    %edx,0x8(%esp)
40aa35:	89 54 24 28          	mov    %edx,0x28(%esp)
40aa39:	e9 1c fb ff ff       	jmp    0x40a55a
40aa3e:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40aa43:	0f 85 97 0c 00 00    	jne    0x40b6e0
40aa49:	8b f2                	mov    %edx,%esi
40aa4b:	e9 28 fb ff ff       	jmp    0x40a578
40aa50:	84 c9                	test   %cl,%cl
40aa52:	0f 84 4f 05 00 00    	je     0x40afa7
40aa58:	8b 42 04             	mov    0x4(%edx),%eax
40aa5b:	83 38 12             	cmpl   $0x12,(%eax)
40aa5e:	74 7a                	je     0x40aada
40aa60:	84 c9                	test   %cl,%cl
40aa62:	0f 85 5c 06 00 00    	jne    0x40b0c4
40aa68:	83 3a 14             	cmpl   $0x14,(%edx)
40aa6b:	0f 84 a0 0c 00 00    	je     0x40b711
40aa71:	8d 44 24 20          	lea    0x20(%esp),%eax
40aa75:	50                   	push   %eax
40aa76:	8d 44 24 54          	lea    0x54(%esp),%eax
40aa7a:	50                   	push   %eax
40aa7b:	e8 e0 0f 00 00       	call   0x40ba60
40aa80:	85 c0                	test   %eax,%eax
40aa82:	0f 88 f7 59 03 00    	js     0x44047f
40aa88:	8b 54 24 54          	mov    0x54(%esp),%edx
40aa8c:	8a 4c 24 59          	mov    0x59(%esp),%cl
40aa90:	89 54 24 1c          	mov    %edx,0x1c(%esp)
40aa94:	eb ba                	jmp    0x40aa50
40aa96:	85 c9                	test   %ecx,%ecx
40aa98:	74 1c                	je     0x40aab6
40aa9a:	8b 44 8e fc          	mov    -0x4(%esi,%ecx,4),%eax
40aa9e:	0f b7 40 08          	movzwl 0x8(%eax),%eax
40aaa2:	66 83 f8 48          	cmp    $0x48,%ax
40aaa6:	0f 84 08 59 03 00    	je     0x4403b4
40aaac:	66 83 f8 4f          	cmp    $0x4f,%ax
40aab0:	0f 84 fe 58 03 00    	je     0x4403b4
40aab6:	8d 41 01             	lea    0x1(%ecx),%eax
40aab9:	be 12 00 00 00       	mov    $0x12,%esi
40aabe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40aac1:	89 01                	mov    %eax,(%ecx)
40aac3:	e9 a3 f6 ff ff       	jmp    0x40a16b
40aac8:	8d 41 01             	lea    0x1(%ecx),%eax
40aacb:	be 13 00 00 00       	mov    $0x13,%esi
40aad0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40aad3:	89 01                	mov    %eax,(%ecx)
40aad5:	e9 91 f6 ff ff       	jmp    0x40a16b
40aada:	84 c9                	test   %cl,%cl
40aadc:	74 1a                	je     0x40aaf8
40aade:	8b 72 04             	mov    0x4(%edx),%esi
40aae1:	52                   	push   %edx
40aae2:	e8 85 65 01 00       	call   0x42106c
40aae7:	8b d6                	mov    %esi,%edx
40aae9:	83 c4 04             	add    $0x4,%esp
40aaec:	8b 74 24 10          	mov    0x10(%esp),%esi
40aaf0:	89 54 24 1c          	mov    %edx,0x1c(%esp)
40aaf4:	89 54 24 54          	mov    %edx,0x54(%esp)
40aaf8:	80 7c 24 58 00       	cmpb   $0x0,0x58(%esp)
40aafd:	0f 84 b8 60 03 00    	je     0x440bbb
40ab03:	c6 44 24 59 01       	movb   $0x1,0x59(%esp)
40ab08:	ff 4c 24 50          	decl   0x50(%esp)
40ab0c:	e9 c2 f9 ff ff       	jmp    0x40a4d3
40ab11:	8d 41 01             	lea    0x1(%ecx),%eax
40ab14:	be 01 00 00 00       	mov    $0x1,%esi
40ab19:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ab1c:	89 01                	mov    %eax,(%ecx)
40ab1e:	e9 48 f6 ff ff       	jmp    0x40a16b
40ab23:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
40ab28:	c7 44 24 10 16 00 00 	movl   $0x16,0x10(%esp)
40ab2f:	00
40ab30:	0f 84 4b 08 00 00    	je     0x40b381
40ab36:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40ab3b:	0f 85 c7 08 00 00    	jne    0x40b408
40ab41:	6a 18                	push   $0x18
40ab43:	e8 ae 64 01 00       	call   0x420ff6
40ab48:	8b f0                	mov    %eax,%esi
40ab4a:	83 c4 04             	add    $0x4,%esp
40ab4d:	85 f6                	test   %esi,%esi
40ab4f:	0f 84 56 0b 00 00    	je     0x40b6ab
40ab55:	68 88 74 4c 00       	push   $0x4c7488
40ab5a:	8b ce                	mov    %esi,%ecx
40ab5c:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40ab63:	e8 58 ef ff ff       	call   0x409ac0
40ab68:	8b 44 24 08          	mov    0x8(%esp),%eax
40ab6c:	89 46 10             	mov    %eax,0x10(%esi)
40ab6f:	8b c6                	mov    %esi,%eax
40ab71:	89 44 24 08          	mov    %eax,0x8(%esp)
40ab75:	89 44 24 28          	mov    %eax,0x28(%esp)
40ab79:	8b 45 08             	mov    0x8(%ebp),%eax
40ab7c:	8b 75 0c             	mov    0xc(%ebp),%esi
40ab7f:	ff 44 24 24          	incl   0x24(%esp)
40ab83:	8b 50 04             	mov    0x4(%eax),%edx
40ab86:	8b 0e                	mov    (%esi),%ecx
40ab88:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
40ab8c:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40ab91:	0f 85 6e 54 03 00    	jne    0x440005
40ab97:	83 7c 24 24 01       	cmpl   $0x1,0x24(%esp)
40ab9c:	0f 84 f0 07 00 00    	je     0x40b392
40aba2:	80 7c 24 2d 00       	cmpb   $0x0,0x2d(%esp)
40aba7:	8b 44 24 08          	mov    0x8(%esp),%eax
40abab:	0f 85 01 0b 00 00    	jne    0x40b6b2
40abb1:	89 44 24 18          	mov    %eax,0x18(%esp)
40abb5:	c7 44 24 64 84 fb 48 	movl   $0x48fb84,0x64(%esp)
40abbc:	00
40abbd:	c7 44 24 68 00 00 00 	movl   $0x0,0x68(%esp)
40abc4:	00
40abc5:	c7 44 24 6c 00 00 00 	movl   $0x0,0x6c(%esp)
40abcc:	00
40abcd:	c7 44 24 70 00 00 00 	movl   $0x0,0x70(%esp)
40abd4:	00
40abd5:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
40abd8:	8b 30                	mov    (%eax),%esi
40abda:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40abde:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40abe2:	a1 64 74 4c 00       	mov    0x4c7464,%eax
40abe7:	89 74 24 30          	mov    %esi,0x30(%esp)
40abeb:	a8 01                	test   $0x1,%al
40abed:	0f 84 2e 54 03 00    	je     0x440021
40abf3:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40abf7:	3b 35 68 74 4c 00    	cmp    0x4c7468,%esi
40abfd:	0f 84 5c 54 03 00    	je     0x44005f
40ac03:	81 c1 70 04 00 00    	add    $0x470,%ecx
40ac09:	56                   	push   %esi
40ac0a:	e8 81 e4 00 00       	call   0x419090
40ac0f:	8b 55 08             	mov    0x8(%ebp),%edx
40ac12:	8a 40 20             	mov    0x20(%eax),%al
40ac15:	88 44 24 17          	mov    %al,0x17(%esp)
40ac19:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac1c:	ff 00                	incl   (%eax)
40ac1e:	8b 08                	mov    (%eax),%ecx
40ac20:	8b 42 04             	mov    0x4(%edx),%eax
40ac23:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40ac26:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40ac2b:	0f 85 d8 0a 00 00    	jne    0x40b709
40ac31:	8b 52 04             	mov    0x4(%edx),%edx
40ac34:	8d 41 01             	lea    0x1(%ecx),%eax
40ac37:	89 44 24 40          	mov    %eax,0x40(%esp)
40ac3b:	33 f6                	xor    %esi,%esi
40ac3d:	89 44 24 74          	mov    %eax,0x74(%esp)
40ac41:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ac44:	89 01                	mov    %eax,(%ecx)
40ac46:	8b c8                	mov    %eax,%ecx
40ac48:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
40ac4b:	0f bf 40 08          	movswl 0x8(%eax),%eax
40ac4f:	83 e8 47             	sub    $0x47,%eax
40ac52:	0f 84 b1 04 00 00    	je     0x40b109
40ac58:	48                   	dec    %eax
40ac59:	74 0e                	je     0x40ac69
40ac5b:	83 e8 37             	sub    $0x37,%eax
40ac5e:	0f 84 03 60 03 00    	je     0x440c67
40ac64:	8d 41 01             	lea    0x1(%ecx),%eax
40ac67:	eb d8                	jmp    0x40ac41
40ac69:	85 f6                	test   %esi,%esi
40ac6b:	0f 85 8f 04 00 00    	jne    0x40b100
40ac71:	8b 55 0c             	mov    0xc(%ebp),%edx
40ac74:	89 74 24 34          	mov    %esi,0x34(%esp)
40ac78:	8b 0a                	mov    (%edx),%ecx
40ac7a:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
40ac7e:	8d 41 01             	lea    0x1(%ecx),%eax
40ac81:	89 02                	mov    %eax,(%edx)
40ac83:	39 4c 24 40          	cmp    %ecx,0x40(%esp)
40ac87:	0f 83 02 01 00 00    	jae    0x40ad8f
40ac8d:	8d 49 00             	lea    0x0(%ecx),%ecx
40ac90:	8b 44 24 70          	mov    0x70(%esp),%eax
40ac94:	c7 84 24 80 00 00 00 	movl   $0x0,0x80(%esp)
40ac9b:	00 00 00 00
40ac9f:	c7 84 24 88 00 00 00 	movl   $0x0,0x88(%esp)
40aca6:	00 00 00 00
40acaa:	c7 84 24 8c 00 00 00 	movl   $0x1,0x8c(%esp)
40acb1:	01 00 00 00
40acb5:	39 44 24 6c          	cmp    %eax,0x6c(%esp)
40acb9:	75 3b                	jne    0x40acf6
40acbb:	03 c0                	add    %eax,%eax
40acbd:	83 f8 08             	cmp    $0x8,%eax
40acc0:	73 05                	jae    0x40acc7
40acc2:	b8 08 00 00 00       	mov    $0x8,%eax
40acc7:	33 c9                	xor    %ecx,%ecx
40acc9:	89 44 24 70          	mov    %eax,0x70(%esp)
40accd:	ba 04 00 00 00       	mov    $0x4,%edx
40acd2:	f7 e2                	mul    %edx
40acd4:	0f 90 c1             	seto   %cl
40acd7:	f7 d9                	neg    %ecx
40acd9:	0b c8                	or     %eax,%ecx
40acdb:	51                   	push   %ecx
40acdc:	e8 15 63 01 00       	call   0x420ff6
40ace1:	8b f0                	mov    %eax,%esi
40ace3:	83 c4 04             	add    $0x4,%esp
40ace6:	8b 44 24 68          	mov    0x68(%esp),%eax
40acea:	85 c0                	test   %eax,%eax
40acec:	0f 85 94 53 03 00    	jne    0x440086
40acf2:	89 74 24 68          	mov    %esi,0x68(%esp)
40acf6:	6a 10                	push   $0x10
40acf8:	e8 f9 62 01 00       	call   0x420ff6
40acfd:	8b f0                	mov    %eax,%esi
40acff:	83 c4 04             	add    $0x4,%esp
40ad02:	85 f6                	test   %esi,%esi
40ad04:	0f 84 b0 09 00 00    	je     0x40b6ba
40ad0a:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
40ad11:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40ad18:	50                   	push   %eax
40ad19:	8b ce                	mov    %esi,%ecx
40ad1b:	e8 a0 ed ff ff       	call   0x409ac0
40ad20:	8b 4c 24 6c          	mov    0x6c(%esp),%ecx
40ad24:	8b 44 24 68          	mov    0x68(%esp),%eax
40ad28:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40ad2b:	8b 4c 24 6c          	mov    0x6c(%esp),%ecx
40ad2f:	8b 74 24 4c          	mov    0x4c(%esp),%esi
40ad33:	41                   	inc    %ecx
40ad34:	80 7c 24 17 00       	cmpb   $0x0,0x17(%esp)
40ad39:	8b 44 24 68          	mov    0x68(%esp),%eax
40ad3d:	89 4c 24 6c          	mov    %ecx,0x6c(%esp)
40ad41:	56                   	push   %esi
40ad42:	0f 85 1c 09 00 00    	jne    0x40b664
40ad48:	ff 74 88 fc          	push   -0x4(%eax,%ecx,4)
40ad4c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ad50:	8d 44 24 7c          	lea    0x7c(%esp),%eax
40ad54:	50                   	push   %eax