45a902:	ff 15 78 d1 48 00    	call   *0x48d178
45a908:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45a90b:	48                   	dec    %eax
45a90c:	50                   	push   %eax
45a90d:	6a 00                	push   $0x0
45a90f:	56                   	push   %esi
45a910:	e8 3a 19 fb ff       	call   0x40c24f
45a915:	56                   	push   %esi
45a916:	e8 43 4c fc ff       	call   0x41f55e
45a91b:	59                   	pop    %ecx
45a91c:	5e                   	pop    %esi
45a91d:	5f                   	pop    %edi
45a91e:	5b                   	pop    %ebx
45a91f:	5d                   	pop    %ebp
45a920:	c2 08 00             	ret    $0x8
45a923:	55                   	push   %ebp
45a924:	8b ec                	mov    %esp,%ebp
45a926:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
45a92a:	56                   	push   %esi
45a92b:	8b f1                	mov    %ecx,%esi
45a92d:	75 09                	jne    0x45a938
45a92f:	51                   	push   %ecx
45a930:	51                   	push   %ecx
45a931:	e8 c3 b0 fe ff       	call   0x4459f9
45a936:	eb 57                	jmp    0x45a98f
45a938:	53                   	push   %ebx
45a939:	ff 75 08             	push   0x8(%ebp)
45a93c:	e8 8f 6e fc ff       	call   0x4217d0
45a941:	59                   	pop    %ecx
45a942:	8b d8                	mov    %eax,%ebx
45a944:	8b ce                	mov    %esi,%ecx
45a946:	89 5e 04             	mov    %ebx,0x4(%esi)
45a949:	e8 9c c1 fa ff       	call   0x406aea
45a94e:	8b ce                	mov    %esi,%ecx
45a950:	84 c0                	test   %al,%al
45a952:	74 22                	je     0x45a976
45a954:	8b 46 0c             	mov    0xc(%esi),%eax
45a957:	ff 08                	decl   (%eax)
45a959:	e8 ec c1 fa ff       	call   0x406b4a
45a95e:	8b 46 04             	mov    0x4(%esi),%eax
45a961:	40                   	inc    %eax
45a962:	50                   	push   %eax
45a963:	e8 02 3e fc ff       	call   0x41e76a
45a968:	50                   	push   %eax
45a969:	89 46 08             	mov    %eax,0x8(%esi)
45a96c:	e8 79 4b fc ff       	call   0x41f4ea
45a971:	59                   	pop    %ecx
45a972:	89 06                	mov    %eax,(%esi)
45a974:	eb 06                	jmp    0x45a97c
45a976:	53                   	push   %ebx
45a977:	e8 9b 3d fc ff       	call   0x41e717
45a97c:	8b 46 04             	mov    0x4(%esi),%eax
45a97f:	40                   	inc    %eax
45a980:	50                   	push   %eax
45a981:	ff 75 08             	push   0x8(%ebp)
45a984:	ff 36                	push   (%esi)
45a986:	e8 f5 44 fc ff       	call   0x41ee80
45a98b:	83 c4 0c             	add    $0xc,%esp
45a98e:	5b                   	pop    %ebx
45a98f:	5e                   	pop    %esi
45a990:	5d                   	pop    %ebp
45a991:	c2 04 00             	ret    $0x4
45a994:	55                   	push   %ebp
45a995:	8b ec                	mov    %esp,%ebp
45a997:	56                   	push   %esi
45a998:	8b f1                	mov    %ecx,%esi
45a99a:	8b 4d 08             	mov    0x8(%ebp),%ecx
45a99d:	e8 98 3c fc ff       	call   0x41e63a
45a9a2:	ff 75 08             	push   0x8(%ebp)
45a9a5:	56                   	push   %esi
45a9a6:	e8 27 00 00 00       	call   0x45a9d2
45a9ab:	8b 45 08             	mov    0x8(%ebp),%eax
45a9ae:	5e                   	pop    %esi
45a9af:	5d                   	pop    %ebp
45a9b0:	c2 04 00             	ret    $0x4
45a9b3:	55                   	push   %ebp
45a9b4:	8b ec                	mov    %esp,%ebp
45a9b6:	56                   	push   %esi
45a9b7:	8b f1                	mov    %ecx,%esi
45a9b9:	8b 4d 08             	mov    0x8(%ebp),%ecx
45a9bc:	e8 36 2e fb ff       	call   0x40d7f7
45a9c1:	ff 75 08             	push   0x8(%ebp)
45a9c4:	56                   	push   %esi
45a9c5:	e8 e8 fe ff ff       	call   0x45a8b2
45a9ca:	8b 45 08             	mov    0x8(%ebp),%eax
45a9cd:	5e                   	pop    %esi
45a9ce:	5d                   	pop    %ebp
45a9cf:	c2 04 00             	ret    $0x4
45a9d2:	55                   	push   %ebp
45a9d3:	8b ec                	mov    %esp,%ebp
45a9d5:	53                   	push   %ebx
45a9d6:	8b 5d 08             	mov    0x8(%ebp),%ebx
45a9d9:	57                   	push   %edi
45a9da:	8b 7b 04             	mov    0x4(%ebx),%edi
45a9dd:	33 c0                	xor    %eax,%eax
45a9df:	50                   	push   %eax
45a9e0:	50                   	push   %eax
45a9e1:	50                   	push   %eax
45a9e2:	50                   	push   %eax
45a9e3:	47                   	inc    %edi
45a9e4:	57                   	push   %edi
45a9e5:	ff 33                	push   (%ebx)
45a9e7:	50                   	push   %eax
45a9e8:	50                   	push   %eax
45a9e9:	ff 15 9c d1 48 00    	call   *0x48d19c
45a9ef:	89 45 08             	mov    %eax,0x8(%ebp)
45a9f2:	85 c0                	test   %eax,%eax
45a9f4:	75 0a                	jne    0x45aa00
45a9f6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45a9f9:	e8 c4 17 fb ff       	call   0x40c1c2
45a9fe:	eb 31                	jmp    0x45aa31
45aa00:	56                   	push   %esi
45aa01:	50                   	push   %eax
45aa02:	e8 e3 4a fc ff       	call   0x41f4ea
45aa07:	59                   	pop    %ecx
45aa08:	8b f0                	mov    %eax,%esi
45aa0a:	33 c0                	xor    %eax,%eax
45aa0c:	50                   	push   %eax
45aa0d:	50                   	push   %eax
45aa0e:	ff 75 08             	push   0x8(%ebp)
45aa11:	56                   	push   %esi
45aa12:	57                   	push   %edi
45aa13:	ff 33                	push   (%ebx)
45aa15:	50                   	push   %eax
45aa16:	50                   	push   %eax
45aa17:	ff 15 9c d1 48 00    	call   *0x48d19c
45aa1d:	48                   	dec    %eax
45aa1e:	50                   	push   %eax
45aa1f:	51                   	push   %ecx
45aa20:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45aa23:	56                   	push   %esi
45aa24:	e8 9a 3c fc ff       	call   0x41e6c3
45aa29:	56                   	push   %esi
45aa2a:	e8 2f 4b fc ff       	call   0x41f55e
45aa2f:	59                   	pop    %ecx
45aa30:	5e                   	pop    %esi
45aa31:	5f                   	pop    %edi
45aa32:	5b                   	pop    %ebx
45aa33:	5d                   	pop    %ebp
45aa34:	c2 08 00             	ret    $0x8
45aa37:	56                   	push   %esi
45aa38:	8b f1                	mov    %ecx,%esi
45aa3a:	e8 8c 10 00 00       	call   0x45bacb
45aa3f:	84 c0                	test   %al,%al
45aa41:	74 05                	je     0x45aa48
45aa43:	8b 46 08             	mov    0x8(%esi),%eax
45aa46:	5e                   	pop    %esi
45aa47:	c3                   	ret
45aa48:	b8 4f aa 45 00       	mov    $0x45aa4f,%eax
45aa4d:	5e                   	pop    %esi
45aa4e:	c3                   	ret
45aa4f:	33 c0                	xor    %eax,%eax
45aa51:	c2 0c 00             	ret    $0xc
45aa54:	55                   	push   %ebp
45aa55:	8b ec                	mov    %esp,%ebp
45aa57:	8b 45 08             	mov    0x8(%ebp),%eax
45aa5a:	8b 48 04             	mov    0x4(%eax),%ecx
45aa5d:	8b 09                	mov    (%ecx),%ecx
45aa5f:	e8 c4 0a ff ff       	call   0x44b528
45aa64:	84 c0                	test   %al,%al
45aa66:	75 16                	jne    0x45aa7e
45aa68:	56                   	push   %esi
45aa69:	8b 75 0c             	mov    0xc(%ebp),%esi
45aa6c:	8b ce                	mov    %esi,%ecx
45aa6e:	e8 ad 81 fb ff       	call   0x412c20
45aa73:	83 26 00             	andl   $0x0,(%esi)
45aa76:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
45aa7d:	5e                   	pop    %esi
45aa7e:	33 c0                	xor    %eax,%eax
45aa80:	5d                   	pop    %ebp
45aa81:	c2 08 00             	ret    $0x8
45aa84:	55                   	push   %ebp
45aa85:	8b ec                	mov    %esp,%ebp
45aa87:	83 e4 f8             	and    $0xfffffff8,%esp
45aa8a:	83 ec 44             	sub    $0x44,%esp
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