45b79d:	85 f6                	test   %esi,%esi
45b79f:	75 f1                	jne    0x45b792
45b7a1:	5e                   	pop    %esi
45b7a2:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
45b7a6:	74 07                	je     0x45b7af
45b7a8:	57                   	push   %edi
45b7a9:	e8 be 58 fc ff       	call   0x42106c
45b7ae:	59                   	pop    %ecx
45b7af:	8b c7                	mov    %edi,%eax
45b7b1:	5f                   	pop    %edi
45b7b2:	5d                   	pop    %ebp
45b7b3:	c2 04 00             	ret    $0x4
45b7b6:	55                   	push   %ebp
45b7b7:	8b ec                	mov    %esp,%ebp
45b7b9:	83 ec 14             	sub    $0x14,%esp
45b7bc:	8b 55 0c             	mov    0xc(%ebp),%edx
45b7bf:	53                   	push   %ebx
45b7c0:	56                   	push   %esi
45b7c1:	8b f1                	mov    %ecx,%esi
45b7c3:	33 c9                	xor    %ecx,%ecx
45b7c5:	89 75 fc             	mov    %esi,-0x4(%ebp)
45b7c8:	57                   	push   %edi
45b7c9:	89 0e                	mov    %ecx,(%esi)
45b7cb:	8d 7e 0c             	lea    0xc(%esi),%edi
45b7ce:	89 0f                	mov    %ecx,(%edi)
45b7d0:	89 4e 28             	mov    %ecx,0x28(%esi)
45b7d3:	89 4e 30             	mov    %ecx,0x30(%esi)
45b7d6:	89 4e 34             	mov    %ecx,0x34(%esi)
45b7d9:	66 89 4e 3c          	mov    %cx,0x3c(%esi)
45b7dd:	89 4e 08             	mov    %ecx,0x8(%esi)
45b7e0:	85 d2                	test   %edx,%edx
45b7e2:	0f 84 46 02 00 00    	je     0x45ba2e
45b7e8:	8b 5d 10             	mov    0x10(%ebp),%ebx
45b7eb:	85 db                	test   %ebx,%ebx
45b7ed:	0f 84 3b 02 00 00    	je     0x45ba2e
45b7f3:	8b 45 14             	mov    0x14(%ebp),%eax
45b7f6:	85 c0                	test   %eax,%eax
45b7f8:	0f 84 30 02 00 00    	je     0x45ba2e
45b7fe:	39 4d 08             	cmp    %ecx,0x8(%ebp)
45b801:	0f 84 27 02 00 00    	je     0x45ba2e
45b807:	89 08                	mov    %ecx,(%eax)
45b809:	0f bf 83 88 00 00 00 	movswl 0x88(%ebx),%eax
45b810:	89 46 10             	mov    %eax,0x10(%esi)
45b813:	0f bf 83 88 00 00 00 	movswl 0x88(%ebx),%eax
45b81a:	0f bf 8b 8c 00 00 00 	movswl 0x8c(%ebx),%ecx
45b821:	03 c8                	add    %eax,%ecx
45b823:	89 4e 18             	mov    %ecx,0x18(%esi)
45b826:	0f bf 83 8a 00 00 00 	movswl 0x8a(%ebx),%eax
45b82d:	89 46 14             	mov    %eax,0x14(%esi)
45b830:	0f bf 83 8a 00 00 00 	movswl 0x8a(%ebx),%eax
45b837:	0f bf 8b 8e 00 00 00 	movswl 0x8e(%ebx),%ecx
45b83e:	03 c8                	add    %eax,%ecx
45b840:	89 5e 04             	mov    %ebx,0x4(%esi)
45b843:	8b 45 08             	mov    0x8(%ebp),%eax
45b846:	89 4e 1c             	mov    %ecx,0x1c(%esi)
45b849:	8b ca                	mov    %edx,%ecx
45b84b:	89 06                	mov    %eax,(%esi)
45b84d:	e8 8b db fa ff       	call   0x4093dd
45b852:	84 c0                	test   %al,%al
45b854:	0f 84 bf 01 00 00    	je     0x45ba19
45b85a:	83 7a 0c 08          	cmpl   $0x8,0xc(%edx)
45b85e:	75 04                	jne    0x45b864
45b860:	8b 02                	mov    (%edx),%eax
45b862:	eb 02                	jmp    0x45b866
45b864:	33 c0                	xor    %eax,%eax
45b866:	8b 40 08             	mov    0x8(%eax),%eax
45b869:	57                   	push   %edi
45b86a:	68 dc 2c 49 00       	push   $0x492cdc
45b86f:	50                   	push   %eax
45b870:	8b 08                	mov    (%eax),%ecx
45b872:	ff 11                	call   *(%ecx)
45b874:	85 c0                	test   %eax,%eax
45b876:	0f 88 a2 01 00 00    	js     0x45ba1e
45b87c:	6a 0c                	push   $0xc
45b87e:	e8 73 57 fc ff       	call   0x420ff6
45b883:	59                   	pop    %ecx
45b884:	85 c0                	test   %eax,%eax
45b886:	74 12                	je     0x45b89a
45b888:	c7 00 e4 98 4b 00    	movl   $0x4b98e4,(%eax)
45b88e:	89 70 08             	mov    %esi,0x8(%eax)
45b891:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
45b898:	eb 02                	jmp    0x45b89c
45b89a:	33 c0                	xor    %eax,%eax
45b89c:	6a 08                	push   $0x8
45b89e:	89 46 28             	mov    %eax,0x28(%esi)
45b8a1:	e8 50 57 fc ff       	call   0x420ff6
45b8a6:	59                   	pop    %ecx
45b8a7:	85 c0                	test   %eax,%eax
45b8a9:	74 0b                	je     0x45b8b6
45b8ab:	c7 00 a8 98 4b 00    	movl   $0x4b98a8,(%eax)
45b8b1:	89 70 04             	mov    %esi,0x4(%eax)
45b8b4:	eb 02                	jmp    0x45b8b8
45b8b6:	33 c0                	xor    %eax,%eax
45b8b8:	6a 0c                	push   $0xc
45b8ba:	89 46 30             	mov    %eax,0x30(%esi)
45b8bd:	e8 34 57 fc ff       	call   0x420ff6
45b8c2:	59                   	pop    %ecx
45b8c3:	85 c0                	test   %eax,%eax
45b8c5:	74 0f                	je     0x45b8d6
45b8c7:	83 60 08 00          	andl   $0x0,0x8(%eax)
45b8cb:	c7 00 40 98 4b 00    	movl   $0x4b9840,(%eax)
45b8d1:	89 70 04             	mov    %esi,0x4(%eax)
45b8d4:	eb 02                	jmp    0x45b8d8
45b8d6:	33 c0                	xor    %eax,%eax
45b8d8:	6a 08                	push   $0x8
45b8da:	89 46 2c             	mov    %eax,0x2c(%esi)
45b8dd:	e8 14 57 fc ff       	call   0x420ff6
45b8e2:	59                   	pop    %ecx
45b8e3:	85 c0                	test   %eax,%eax
45b8e5:	74 0b                	je     0x45b8f2
45b8e7:	c7 00 e0 97 4b 00    	movl   $0x4b97e0,(%eax)
45b8ed:	89 70 04             	mov    %esi,0x4(%eax)
45b8f0:	eb 02                	jmp    0x45b8f4
45b8f2:	33 c0                	xor    %eax,%eax
45b8f4:	89 46 34             	mov    %eax,0x34(%esi)
45b8f7:	8b 07                	mov    (%edi),%eax
45b8f9:	68 b4 97 4b 00       	push   $0x4b97b4
45b8fe:	68 cc 97 4b 00       	push   $0x4b97cc
45b903:	50                   	push   %eax
45b904:	8b 08                	mov    (%eax),%ecx
45b906:	ff 51 14             	call   *0x14(%ecx)
45b909:	0f bf 83 8c 00 00 00 	movswl 0x8c(%ebx),%eax
45b910:	8d 55 ec             	lea    -0x14(%ebp),%edx
45b913:	89 45 f4             	mov    %eax,-0xc(%ebp)
45b916:	8d 4d f4             	lea    -0xc(%ebp),%ecx
45b919:	0f bf 83 8e 00 00 00 	movswl 0x8e(%ebx),%eax
45b920:	89 45 f8             	mov    %eax,-0x8(%ebp)
45b923:	e8 2b 03 00 00       	call   0x45bc53
45b928:	8b 07                	mov    (%edi),%eax
45b92a:	8d 55 ec             	lea    -0x14(%ebp),%edx
45b92d:	52                   	push   %edx
45b92e:	6a 01                	push   $0x1
45b930:	50                   	push   %eax
45b931:	8b 08                	mov    (%eax),%ecx
45b933:	ff 51 44             	call   *0x44(%ecx)
45b936:	8b 07                	mov    (%edi),%eax
45b938:	ff 76 28             	push   0x28(%esi)
45b93b:	50                   	push   %eax
45b93c:	8b 08                	mov    (%eax),%ecx
45b93e:	ff 51 0c             	call   *0xc(%ecx)
45b941:	8b 0f                	mov    (%edi),%ecx
45b943:	8d 46 38             	lea    0x38(%esi),%eax
45b946:	50                   	push   %eax
45b947:	ff 76 34             	push   0x34(%esi)
45b94a:	8b 11                	mov    (%ecx),%edx
45b94c:	51                   	push   %ecx
45b94d:	ff 52 4c             	call   *0x4c(%edx)
45b950:	8b 07                	mov    (%edi),%eax
45b952:	8d 55 08             	lea    0x8(%ebp),%edx
45b955:	52                   	push   %edx
45b956:	68 3c 2d 49 00       	push   $0x492d3c
45b95b:	50                   	push   %eax
45b95c:	8b 08                	mov    (%eax),%ecx
45b95e:	ff 11                	call   *(%ecx)
45b960:	85 c0                	test   %eax,%eax
45b962:	78 19                	js     0x45b97d
45b964:	8b 45 08             	mov    0x8(%ebp),%eax
45b967:	ff 76 34             	push   0x34(%esi)
45b96a:	6a 02                	push   $0x2
45b96c:	8b 08                	mov    (%eax),%ecx
45b96e:	6a 01                	push   $0x1
45b970:	50                   	push   %eax
45b971:	ff 51 1c             	call   *0x1c(%ecx)
45b974:	8b 45 08             	mov    0x8(%ebp),%eax
45b977:	50                   	push   %eax
45b978:	8b 08                	mov    (%eax),%ecx
45b97a:	ff 51 08             	call   *0x8(%ecx)
45b97d:	6a 01                	push   $0x1
45b97f:	ff 37                	push   (%edi)
45b981:	ff 15 44 f8 48 00    	call   *0x48f844
45b987:	8b 0f                	mov    (%edi),%ecx
45b989:	8d 46 10             	lea    0x10(%esi),%eax
45b98c:	50                   	push   %eax
45b98d:	8b 06                	mov    (%esi),%eax
45b98f:	8b 11                	mov    (%ecx),%edx
45b991:	ff 70 14             	push   0x14(%eax)
45b994:	6a ff                	push   $0xffffffff
45b996:	ff 76 28             	push   0x28(%esi)
45b999:	6a 00                	push   $0x0
45b99b:	6a ff                	push   $0xffffffff
45b99d:	51                   	push   %ecx
45b99e:	ff 52 2c             	call   *0x2c(%edx)
45b9a1:	6a 05                	push   $0x5
45b9a3:	5e                   	pop    %esi
45b9a4:	8b 07                	mov    (%edi),%eax
45b9a6:	50                   	push   %eax
45b9a7:	8b 08                	mov    (%eax),%ecx
45b9a9:	ff 51 38             	call   *0x38(%ecx)
45b9ac:	8b d8                	mov    %eax,%ebx
45b9ae:	4e                   	dec    %esi
45b9af:	85 db                	test   %ebx,%ebx
45b9b1:	74 06                	je     0x45b9b9
45b9b3:	85 f6                	test   %esi,%esi
45b9b5:	75 ed                	jne    0x45b9a4
45b9b7:	85 db                	test   %ebx,%ebx
45b9b9:	8b 75 fc             	mov    -0x4(%ebp),%esi
45b9bc:	79 10                	jns    0x45b9ce
45b9be:	8b ce                	mov    %esi,%ecx
45b9c0:	e8 08 03 00 00       	call   0x45bccd
45b9c5:	6a 01                	push   $0x1
45b9c7:	6a 00                	push   $0x0
45b9c9:	6a 00                	push   $0x0
45b9cb:	53                   	push   %ebx
45b9cc:	eb 56                	jmp    0x45ba24
45b9ce:	8b 07                	mov    (%edi),%eax
45b9d0:	8d 55 0c             	lea    0xc(%ebp),%edx
45b9d3:	52                   	push   %edx
45b9d4:	68 1c 2d 49 00       	push   $0x492d1c
45b9d9:	50                   	push   %eax
45b9da:	8b 08                	mov    (%eax),%ecx
45b9dc:	ff 11                	call   *(%ecx)
45b9de:	8b f8                	mov    %eax,%edi
45b9e0:	85 ff                	test   %edi,%edi
45b9e2:	79 10                	jns    0x45b9f4
45b9e4:	8b ce                	mov    %esi,%ecx
45b9e6:	e8 e2 02 00 00       	call   0x45bccd
45b9eb:	6a 01                	push   $0x1
45b9ed:	6a 00                	push   $0x0
45b9ef:	6a 00                	push   $0x0
45b9f1:	57                   	push   %edi
45b9f2:	eb 30                	jmp    0x45ba24
45b9f4:	8b 45 0c             	mov    0xc(%ebp),%eax
45b9f7:	8d 5e 08             	lea    0x8(%esi),%ebx
45b9fa:	53                   	push   %ebx
45b9fb:	50                   	push   %eax
45b9fc:	8b 08                	mov    (%eax),%ecx
45b9fe:	ff 51 0c             	call   *0xc(%ecx)
45ba01:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45ba04:	8b f8                	mov    %eax,%edi
45ba06:	51                   	push   %ecx
45ba07:	8b 11                	mov    (%ecx),%edx
45ba09:	ff 52 08             	call   *0x8(%edx)
45ba0c:	85 ff                	test   %edi,%edi
45ba0e:	78 d4                	js     0x45b9e4
45ba10:	8b 4d 14             	mov    0x14(%ebp),%ecx
45ba13:	8b 03                	mov    (%ebx),%eax
45ba15:	89 01                	mov    %eax,(%ecx)
45ba17:	eb 15                	jmp    0x45ba2e
45ba19:	b8 05 40 00 80       	mov    $0x80004005,%eax
45ba1e:	33 c9                	xor    %ecx,%ecx
45ba20:	51                   	push   %ecx
45ba21:	51                   	push   %ecx
45ba22:	51                   	push   %ecx
45ba23:	50                   	push   %eax
45ba24:	b9 10 63 4c 00       	mov    $0x4c6310,%ecx
45ba29:	e8 ad dc 01 00       	call   0x4796db
45ba2e:	5f                   	pop    %edi
45ba2f:	8b c6                	mov    %esi,%eax
45ba31:	5e                   	pop    %esi
45ba32:	5b                   	pop    %ebx
45ba33:	8b e5                	mov    %ebp,%esp
45ba35:	5d                   	pop    %ebp
45ba36:	c2 10 00             	ret    $0x10
45ba39:	55                   	push   %ebp
45ba3a:	8b ec                	mov    %esp,%ebp
45ba3c:	56                   	push   %esi
45ba3d:	6a 0c                	push   $0xc
45ba3f:	8b f1                	mov    %ecx,%esi
45ba41:	e8 b0 55 fc ff       	call   0x420ff6
45ba46:	59                   	pop    %ecx
45ba47:	85 c0                	test   %eax,%eax
45ba49:	74 12                	je     0x45ba5d
45ba4b:	c7 00 28 98 4b 00    	movl   $0x4b9828,(%eax)
45ba51:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
45ba58:	89 70 04             	mov    %esi,0x4(%eax)
45ba5b:	eb 02                	jmp    0x45ba5f
45ba5d:	33 c0                	xor    %eax,%eax
45ba5f:	6a 08                	push   $0x8
45ba61:	89 06                	mov    %eax,(%esi)
45ba63:	e8 8e 55 fc ff       	call   0x420ff6
45ba68:	59                   	pop    %ecx
45ba69:	85 c0                	test   %eax,%eax
45ba6b:	74 0b                	je     0x45ba78
45ba6d:	c7 00 8c 98 4b 00    	movl   $0x4b988c,(%eax)
45ba73:	89 70 04             	mov    %esi,0x4(%eax)
45ba76:	eb 02                	jmp    0x45ba7a
45ba78:	33 c0                	xor    %eax,%eax
45ba7a:	6a 08                	push   $0x8
45ba7c:	89 46 04             	mov    %eax,0x4(%esi)
45ba7f:	e8 72 55 fc ff       	call   0x420ff6
45ba84:	59                   	pop    %ecx
45ba85:	85 c0                	test   %eax,%eax
45ba87:	74 0b                	je     0x45ba94
45ba89:	c7 00 00 98 4b 00    	movl   $0x4b9800,(%eax)
45ba8f:	89 70 04             	mov    %esi,0x4(%eax)
45ba92:	eb 02                	jmp    0x45ba96
45ba94:	33 c0                	xor    %eax,%eax
45ba96:	6a 0c                	push   $0xc
45ba98:	89 46 08             	mov    %eax,0x8(%esi)
45ba9b:	e8 56 55 fc ff       	call   0x420ff6
45baa0:	59                   	pop    %ecx
45baa1:	8b 4d 08             	mov    0x8(%ebp),%ecx
45baa4:	85 c0                	test   %eax,%eax
45baa6:	74 0e                	je     0x45bab6
45baa8:	c7 00 50 98 4b 00    	movl   $0x4b9850,(%eax)
45baae:	89 70 04             	mov    %esi,0x4(%eax)
45bab1:	89 48 08             	mov    %ecx,0x8(%eax)
45bab4:	eb 02                	jmp    0x45bab8
45bab6:	33 c0                	xor    %eax,%eax
45bab8:	83 66 10 00          	andl   $0x0,0x10(%esi)
45babc:	89 46 0c             	mov    %eax,0xc(%esi)
45babf:	8b c6                	mov    %esi,%eax
45bac1:	89 4e 14             	mov    %ecx,0x14(%esi)
45bac4:	c6 46 18 00          	movb   $0x0,0x18(%esi)
45bac8:	5e                   	pop    %esi
45bac9:	5d                   	pop    %ebp
45baca:	c2 04 00             	ret    $0x4
45bacd:	56                   	push   %esi
45bace:	8b f1                	mov    %ecx,%esi
45bad0:	57                   	push   %edi
45bad1:	33 ff                	xor    %edi,%edi
45bad3:	39 7e 0c             	cmp    %edi,0xc(%esi)
45bad6:	74 0c                	je     0x45bae4
45bad8:	ff 76 0c             	push   0xc(%esi)
45badb:	e8 8c 55 fc ff       	call   0x42106c
45bae0:	59                   	pop    %ecx
45bae1:	89 7e 0c             	mov    %edi,0xc(%esi)
45bae4:	39 7e 08             	cmp    %edi,0x8(%esi)
45bae7:	74 0c                	je     0x45baf5
45bae9:	ff 76 08             	push   0x8(%esi)
45baec:	e8 7b 55 fc ff       	call   0x42106c
45baf1:	59                   	pop    %ecx
45baf2:	89 7e 08             	mov    %edi,0x8(%esi)
45baf5:	39 7e 04             	cmp    %edi,0x4(%esi)
45baf8:	74 0c                	je     0x45bb06
45bafa:	ff 76 04             	push   0x4(%esi)
45bafd:	e8 6a 55 fc ff       	call   0x42106c
45bb02:	59                   	pop    %ecx
45bb03:	89 7e 04             	mov    %edi,0x4(%esi)
45bb06:	39 3e                	cmp    %edi,(%esi)
45bb08:	74 0a                	je     0x45bb14
45bb0a:	ff 36                	push   (%esi)
45bb0c:	e8 5b 55 fc ff       	call   0x42106c
45bb11:	59                   	pop    %ecx
45bb12:	89 3e                	mov    %edi,(%esi)
45bb14:	89 7e 14             	mov    %edi,0x14(%esi)
45bb17:	5f                   	pop    %edi
45bb18:	5e                   	pop    %esi
45bb19:	c3                   	ret
45bb1a:	56                   	push   %esi
45bb1b:	8b f1                	mov    %ecx,%esi
45bb1d:	e8 ab 01 00 00       	call   0x45bccd
45bb22:	56                   	push   %esi
45bb23:	e8 44 55 fc ff       	call   0x42106c
45bb28:	59                   	pop    %ecx
45bb29:	8b c6                	mov    %esi,%eax
45bb2b:	5e                   	pop    %esi
45bb2c:	c2 04 00             	ret    $0x4
45bb2f:	56                   	push   %esi
45bb30:	8b f1                	mov    %ecx,%esi