45aa8d:	53                   	push   %ebx
45aa8e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45aa91:	56                   	push   %esi
45aa92:	57                   	push   %edi
45aa93:	8b f1                	mov    %ecx,%esi
45aa95:	33 ff                	xor    %edi,%edi
45aa97:	8b cb                	mov    %ebx,%ecx
45aa99:	89 74 24 10          	mov    %esi,0x10(%esp)
45aa9d:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
45aaa1:	e8 7a 81 fb ff       	call   0x412c20
45aaa6:	57                   	push   %edi
45aaa7:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
45aaae:	89 3b                	mov    %edi,(%ebx)
45aab0:	89 7c 24 18          	mov    %edi,0x18(%esp)
45aab4:	ff 15 3c d8 48 00    	call   *0x48d83c
45aaba:	83 f8 01             	cmp    $0x1,%eax
45aabd:	75 06                	jne    0x45aac5
45aabf:	ff 15 40 d8 48 00    	call   *0x48d840
45aac5:	8d 44 24 20          	lea    0x20(%esp),%eax
45aac9:	50                   	push   %eax
45aaca:	ff 15 64 d4 48 00    	call   *0x48d464
45aad0:	6a 09                	push   $0x9
45aad2:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
45aad6:	89 7c 24 30          	mov    %edi,0x30(%esp)
45aada:	8b 7d 08             	mov    0x8(%ebp),%edi
45aadd:	58                   	pop    %eax
45aade:	66 89 44 24 20       	mov    %ax,0x20(%esp)
45aae3:	8b 47 08             	mov    0x8(%edi),%eax
45aae6:	48                   	dec    %eax
45aae7:	0f 84 00 02 00 00    	je     0x45aced
45aaed:	48                   	dec    %eax
45aaee:	0f 84 ce 01 00 00    	je     0x45acc2
45aaf4:	48                   	dec    %eax
45aaf5:	74 6c                	je     0x45ab63
45aaf7:	48                   	dec    %eax
45aaf8:	0f 85 9a 02 00 00    	jne    0x45ad98
45aafe:	8b 47 04             	mov    0x4(%edi),%eax
45ab01:	8b 70 0c             	mov    0xc(%eax),%esi
45ab04:	8b ce                	mov    %esi,%ecx
45ab06:	e8 61 e8 fa ff       	call   0x40936c
45ab0b:	8b 46 08             	mov    0x8(%esi),%eax
45ab0e:	8b 00                	mov    (%eax),%eax
45ab10:	89 44 24 18          	mov    %eax,0x18(%esp)
45ab14:	8b 47 04             	mov    0x4(%edi),%eax
45ab17:	8b 70 08             	mov    0x8(%eax),%esi
45ab1a:	8b ce                	mov    %esi,%ecx
45ab1c:	e8 4b e8 fa ff       	call   0x40936c
45ab21:	8b 46 08             	mov    0x8(%esi),%eax
45ab24:	8b 18                	mov    (%eax),%ebx
45ab26:	8b 47 04             	mov    0x4(%edi),%eax
45ab29:	8b 70 04             	mov    0x4(%eax),%esi
45ab2c:	8b ce                	mov    %esi,%ecx
45ab2e:	e8 39 e8 fa ff       	call   0x40936c
45ab33:	8b 46 08             	mov    0x8(%esi),%eax
45ab36:	8b 38                	mov    (%eax),%edi
45ab38:	8b 45 08             	mov    0x8(%ebp),%eax
45ab3b:	8b 40 04             	mov    0x4(%eax),%eax
45ab3e:	8b 30                	mov    (%eax),%esi
45ab40:	8b ce                	mov    %esi,%ecx
45ab42:	e8 25 e8 fa ff       	call   0x40936c
45ab47:	ff 75 0c             	push   0xc(%ebp)
45ab4a:	ff 74 24 1c          	push   0x1c(%esp)
45ab4e:	53                   	push   %ebx
45ab4f:	8b 46 08             	mov    0x8(%esi),%eax
45ab52:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
45ab56:	57                   	push   %edi
45ab57:	ff 30                	push   (%eax)
45ab59:	e8 2e 16 00 00       	call   0x45c18c
45ab5e:	e9 35 02 00 00       	jmp    0x45ad98
45ab63:	8b 47 04             	mov    0x4(%edi),%eax
45ab66:	8b 58 08             	mov    0x8(%eax),%ebx
45ab69:	8b cb                	mov    %ebx,%ecx
45ab6b:	e8 40 29 fb ff       	call   0x40d4b0
45ab70:	8b cb                	mov    %ebx,%ecx
45ab72:	84 c0                	test   %al,%al
45ab74:	0f 84 01 01 00 00    	je     0x45ac7b
45ab7a:	e8 07 27 fb ff       	call   0x40d286
45ab7f:	85 c0                	test   %eax,%eax
45ab81:	7e 3c                	jle    0x45abbf
45ab83:	8b 47 04             	mov    0x4(%edi),%eax
45ab86:	8b b6 ac 01 00 00    	mov    0x1ac(%esi),%esi
45ab8c:	8b 48 08             	mov    0x8(%eax),%ecx
45ab8f:	e8 f2 26 fb ff       	call   0x40d286
45ab94:	3b c6                	cmp    %esi,%eax
45ab96:	7f 23                	jg     0x45abbb
45ab98:	8b 47 04             	mov    0x4(%edi),%eax
45ab9b:	8b 48 08             	mov    0x8(%eax),%ecx
45ab9e:	e8 e3 26 fb ff       	call   0x40d286
45aba3:	8b 74 24 10          	mov    0x10(%esp),%esi
45aba7:	8d 48 ff             	lea    -0x1(%eax),%ecx
45abaa:	8b 86 a8 01 00 00    	mov    0x1a8(%esi),%eax
45abb0:	8b 04 88             	mov    (%eax,%ecx,4),%eax
45abb3:	8b 18                	mov    (%eax),%ebx
45abb5:	89 5c 24 18          	mov    %ebx,0x18(%esp)
45abb9:	eb 09                	jmp    0x45abc4
45abbb:	8b 74 24 10          	mov    0x10(%esp),%esi
45abbf:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
45abc4:	6a 3c                	push   $0x3c
45abc6:	e8 1f 49 fc ff       	call   0x41f4ea
45abcb:	59                   	pop    %ecx
45abcc:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45abd0:	85 c0                	test   %eax,%eax
45abd2:	74 48                	je     0x45ac1c
45abd4:	8b 4f 04             	mov    0x4(%edi),%ecx
45abd7:	6a 29                	push   $0x29
45abd9:	8b 71 04             	mov    0x4(%ecx),%esi
45abdc:	8b ce                	mov    %esi,%ecx
45abde:	e8 09 70 fa ff       	call   0x401bec
45abe3:	84 c0                	test   %al,%al
45abe5:	74 04                	je     0x45abeb
45abe7:	33 db                	xor    %ebx,%ebx
45abe9:	eb 0c                	jmp    0x45abf7
45abeb:	8b ce                	mov    %esi,%ecx
45abed:	e8 7a e7 fa ff       	call   0x40936c
45abf2:	8b 46 08             	mov    0x8(%esi),%eax
45abf5:	8b 18                	mov    (%eax),%ebx
45abf7:	8b 47 04             	mov    0x4(%edi),%eax
45abfa:	8b 30                	mov    (%eax),%esi
45abfc:	8b ce                	mov    %esi,%ecx
45abfe:	e8 69 e7 fa ff       	call   0x40936c
45ac03:	ff 74 24 18          	push   0x18(%esp)
45ac07:	8b 46 08             	mov    0x8(%esi),%eax
45ac0a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
45ac0e:	53                   	push   %ebx
45ac0f:	ff 30                	push   (%eax)
45ac11:	e8 fd 55 fe ff       	call   0x440213
45ac16:	8b 74 24 10          	mov    0x10(%esp),%esi
45ac1a:	eb 02                	jmp    0x45ac1e
45ac1c:	33 c0                	xor    %eax,%eax
45ac1e:	89 44 24 28          	mov    %eax,0x28(%esp)
45ac22:	8b 40 04             	mov    0x4(%eax),%eax
45ac25:	85 c0                	test   %eax,%eax
45ac27:	78 21                	js     0x45ac4a
45ac29:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45ac2c:	6a 04                	push   $0x4
45ac2e:	5b                   	pop    %ebx
45ac2f:	8d 44 24 20          	lea    0x20(%esp),%eax
45ac33:	50                   	push   %eax
45ac34:	e8 8c f1 fe ff       	call   0x449dc5
45ac39:	83 64 24 48 00       	andl   $0x0,0x48(%esp)
45ac3e:	50                   	push   %eax
45ac3f:	8d 4c 24 44          	lea    0x44(%esp),%ecx
45ac43:	e8 d8 6a fb ff       	call   0x411720
45ac48:	eb 18                	jmp    0x45ac62
45ac4a:	83 64 24 38 00       	andl   $0x0,0x38(%esp)
45ac4f:	6a 08                	push   $0x8
45ac51:	89 44 24 18          	mov    %eax,0x18(%esp)
45ac55:	5b                   	pop    %ebx
45ac56:	89 44 24 30          	mov    %eax,0x30(%esp)
45ac5a:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
45ac61:	00
45ac62:	f6 c3 08             	test   $0x8,%bl
45ac65:	74 0c                	je     0x45ac73
45ac67:	8d 4c 24 30          	lea    0x30(%esp),%ecx
45ac6b:	83 e3 f7             	and    $0xfffffff7,%ebx
45ac6e:	e8 ad 7f fb ff       	call   0x412c20
45ac73:	f6 c3 04             	test   $0x4,%bl
45ac76:	e9 fc 00 00 00       	jmp    0x45ad77
45ac7b:	e8 ec e6 fa ff       	call   0x40936c
45ac80:	8b 43 08             	mov    0x8(%ebx),%eax
45ac83:	8b 18                	mov    (%eax),%ebx
45ac85:	8b 47 04             	mov    0x4(%edi),%eax
45ac88:	8b 70 04             	mov    0x4(%eax),%esi
45ac8b:	8b ce                	mov    %esi,%ecx
45ac8d:	e8 da e6 fa ff       	call   0x40936c
45ac92:	8b 46 08             	mov    0x8(%esi),%eax
45ac95:	8b 38                	mov    (%eax),%edi
45ac97:	8b 45 08             	mov    0x8(%ebp),%eax
45ac9a:	8b 40 04             	mov    0x4(%eax),%eax
45ac9d:	8b 30                	mov    (%eax),%esi
45ac9f:	8b ce                	mov    %esi,%ecx
45aca1:	e8 c6 e6 fa ff       	call   0x40936c
45aca6:	ff 75 0c             	push   0xc(%ebp)
45aca9:	8b 46 08             	mov    0x8(%esi),%eax
45acac:	8b 74 24 14          	mov    0x14(%esp),%esi
45acb0:	6a 00                	push   $0x0
45acb2:	53                   	push   %ebx
45acb3:	57                   	push   %edi
45acb4:	ff 30                	push   (%eax)
45acb6:	8b ce                	mov    %esi,%ecx
45acb8:	e8 cf 14 00 00       	call   0x45c18c
45acbd:	e9 c0 00 00 00       	jmp    0x45ad82
45acc2:	8b 47 04             	mov    0x4(%edi),%eax
45acc5:	8b 70 04             	mov    0x4(%eax),%esi
45acc8:	8b ce                	mov    %esi,%ecx
45acca:	e8 9d e6 fa ff       	call   0x40936c
45accf:	8b 46 08             	mov    0x8(%esi),%eax
45acd2:	8b 38                	mov    (%eax),%edi
45acd4:	8b 45 08             	mov    0x8(%ebp),%eax
45acd7:	8b 40 04             	mov    0x4(%eax),%eax
45acda:	8b 30                	mov    (%eax),%esi
45acdc:	8b ce                	mov    %esi,%ecx
45acde:	e8 89 e6 fa ff       	call   0x40936c
45ace3:	53                   	push   %ebx
45ace4:	6a 00                	push   $0x0
45ace6:	6a 00                	push   $0x0
45ace8:	e9 62 fe ff ff       	jmp    0x45ab4f
45aced:	6a 3c                	push   $0x3c
45acef:	e8 f6 47 fc ff       	call   0x41f4ea
45acf4:	8b d8                	mov    %eax,%ebx
45acf6:	59                   	pop    %ecx
45acf7:	85 db                	test   %ebx,%ebx
45acf9:	74 22                	je     0x45ad1d
45acfb:	8b 4f 04             	mov    0x4(%edi),%ecx
45acfe:	8b 31                	mov    (%ecx),%esi
45ad00:	8b ce                	mov    %esi,%ecx
45ad02:	e8 65 e6 fa ff       	call   0x40936c
45ad07:	8b 4e 08             	mov    0x8(%esi),%ecx
45ad0a:	6a 00                	push   $0x0
45ad0c:	6a 00                	push   $0x0
45ad0e:	ff 31                	push   (%ecx)
45ad10:	8b cb                	mov    %ebx,%ecx
45ad12:	e8 fc 54 fe ff       	call   0x440213
45ad17:	8b 74 24 10          	mov    0x10(%esp),%esi
45ad1b:	eb 02                	jmp    0x45ad1f
45ad1d:	33 c0                	xor    %eax,%eax
45ad1f:	89 44 24 28          	mov    %eax,0x28(%esp)
45ad23:	8b 40 04             	mov    0x4(%eax),%eax
45ad26:	85 c0                	test   %eax,%eax
45ad28:	78 21                	js     0x45ad4b
45ad2a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45ad2d:	8d 44 24 20          	lea    0x20(%esp),%eax
45ad31:	33 db                	xor    %ebx,%ebx
45ad33:	50                   	push   %eax
45ad34:	43                   	inc    %ebx
45ad35:	e8 8b f0 fe ff       	call   0x449dc5
45ad3a:	83 64 24 48 00       	andl   $0x0,0x48(%esp)
45ad3f:	50                   	push   %eax
45ad40:	8d 4c 24 44          	lea    0x44(%esp),%ecx
45ad44:	e8 d7 69 fb ff       	call   0x411720
45ad49:	eb 18                	jmp    0x45ad63
45ad4b:	83 64 24 38 00       	andl   $0x0,0x38(%esp)
45ad50:	6a 02                	push   $0x2
45ad52:	89 44 24 18          	mov    %eax,0x18(%esp)
45ad56:	5b                   	pop    %ebx
45ad57:	89 44 24 30          	mov    %eax,0x30(%esp)
45ad5b:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
45ad62:	00
45ad63:	f6 c3 02             	test   $0x2,%bl
45ad66:	74 0c                	je     0x45ad74
45ad68:	8d 4c 24 30          	lea    0x30(%esp),%ecx
45ad6c:	83 e3 fd             	and    $0xfffffffd,%ebx
45ad6f:	e8 ac 7e fb ff       	call   0x412c20
45ad74:	f6 c3 01             	test   $0x1,%bl
45ad77:	74 09                	je     0x45ad82
45ad79:	8d 4c 24 40          	lea    0x40(%esp),%ecx
45ad7d:	e8 9e 7e fb ff       	call   0x412c20
45ad82:	8b 44 24 14          	mov    0x14(%esp),%eax
45ad86:	85 c0                	test   %eax,%eax
45ad88:	79 0e                	jns    0x45ad98
45ad8a:	6a 00                	push   $0x0
45ad8c:	6a 00                	push   $0x0
45ad8e:	6a 00                	push   $0x0
45ad90:	50                   	push   %eax
45ad91:	8b ce                	mov    %esi,%ecx
45ad93:	e8 25 10 00 00       	call   0x45bdbd
45ad98:	8d 44 24 20          	lea    0x20(%esp),%eax
45ad9c:	50                   	push   %eax
45ad9d:	ff 15 4c d4 48 00    	call   *0x48d44c
45ada3:	5f                   	pop    %edi
45ada4:	5e                   	pop    %esi
45ada5:	33 c0                	xor    %eax,%eax
45ada7:	5b                   	pop    %ebx
45ada8:	8b e5                	mov    %ebp,%esp
45adaa:	5d                   	pop    %ebp
45adab:	c2 08 00             	ret    $0x8
45adae:	55                   	push   %ebp
45adaf:	8b ec                	mov    %esp,%ebp
45adb1:	83 e4 f8             	and    $0xfffffff8,%esp
45adb4:	83 ec 4c             	sub    $0x4c,%esp
45adb7:	53                   	push   %ebx
45adb8:	56                   	push   %esi
45adb9:	57                   	push   %edi
45adba:	8b 7d 08             	mov    0x8(%ebp),%edi
45adbd:	8b d9                	mov    %ecx,%ebx
45adbf:	8b 47 04             	mov    0x4(%edi),%eax
45adc2:	8b 30                	mov    (%eax),%esi
45adc4:	8b ce                	mov    %esi,%ecx
45adc6:	e8 a1 e5 fa ff       	call   0x40936c
45adcb:	8b 46 08             	mov    0x8(%esi),%eax
45adce:	8b 00                	mov    (%eax),%eax
45add0:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45add4:	8b 47 04             	mov    0x4(%edi),%eax
45add7:	8b 70 04             	mov    0x4(%eax),%esi
45adda:	8b ce                	mov    %esi,%ecx
45addc:	e8 8b e5 fa ff       	call   0x40936c
45ade1:	8b 46 08             	mov    0x8(%esi),%eax
45ade4:	33 f6                	xor    %esi,%esi
45ade6:	8b 00                	mov    (%eax),%eax
45ade8:	56                   	push   %esi
45ade9:	89 44 24 24          	mov    %eax,0x24(%esp)
45aded:	89 74 24 28          	mov    %esi,0x28(%esp)
45adf1:	c6 44 24 17 01       	movb   $0x1,0x17(%esp)
45adf6:	ff 15 3c d8 48 00    	call   *0x48d83c
45adfc:	83 f8 01             	cmp    $0x1,%eax
45adff:	75 06                	jne    0x45ae07
45ae01:	ff 15 40 d8 48 00    	call   *0x48d840
45ae07:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
45ae0b:	89 74 24 18          	mov    %esi,0x18(%esp)
45ae0f:	76 27                	jbe    0x45ae38
45ae11:	8b 47 04             	mov    0x4(%edi),%eax
45ae14:	6a 29                	push   $0x29
45ae16:	8b 70 0c             	mov    0xc(%eax),%esi
45ae19:	8b ce                	mov    %esi,%ecx
45ae1b:	e8 cc 6d fa ff       	call   0x401bec
45ae20:	84 c0                	test   %al,%al
45ae22:	74 07                	je     0x45ae2b
45ae24:	c6 44 24 13 01       	movb   $0x1,0x13(%esp)
45ae29:	eb 0b                	jmp    0x45ae36
45ae2b:	8b ce                	mov    %esi,%ecx
45ae2d:	e8 f4 2e fc ff       	call   0x41dd26
45ae32:	88 44 24 13          	mov    %al,0x13(%esp)
45ae36:	33 f6                	xor    %esi,%esi
45ae38:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
45ae3c:	56                   	push   %esi
45ae3d:	8d 54 24 3c          	lea    0x3c(%esp),%edx
45ae41:	e8 79 ec fd ff       	call   0x439abf
45ae46:	59                   	pop    %ecx
45ae47:	85 c0                	test   %eax,%eax
45ae49:	78 4a                	js     0x45ae95
45ae4b:	8d 44 24 14          	lea    0x14(%esp),%eax
45ae4f:	50                   	push   %eax
45ae50:	68 fc d8 48 00       	push   $0x48d8fc
45ae55:	6a 17                	push   $0x17
45ae57:	56                   	push   %esi
45ae58:	8d 44 24 48          	lea    0x48(%esp),%eax
45ae5c:	50                   	push   %eax
45ae5d:	89 74 24 28          	mov    %esi,0x28(%esp)
45ae61:	ff 15 2c d8 48 00    	call   *0x48d82c
45ae67:	85 c0                	test   %eax,%eax
45ae69:	79 15                	jns    0x45ae80
45ae6b:	56                   	push   %esi
45ae6c:	68 5c 40 4b 00       	push   $0x4b405c
45ae71:	56                   	push   %esi
45ae72:	6a 01                	push   $0x1
45ae74:	8b cb                	mov    %ebx,%ecx
45ae76:	e8 42 0f 00 00       	call   0x45bdbd
45ae7b:	e9 57 01 00 00       	jmp    0x45afd7
45ae80:	8b 74 24 14          	mov    0x14(%esp),%esi
45ae84:	8b ce                	mov    %esi,%ecx
45ae86:	e8 61 f2 fd ff       	call   0x43a0ec
45ae8b:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
45ae92:	00
45ae93:	eb 2f                	jmp    0x45aec4
45ae95:	8b 47 04             	mov    0x4(%edi),%eax
45ae98:	8b 08                	mov    (%eax),%ecx
45ae9a:	e8 d8 06 ff ff       	call   0x44b577
45ae9f:	8b f0                	mov    %eax,%esi
45aea1:	85 f6                	test   %esi,%esi
45aea3:	75 0b                	jne    0x45aeb0