50d983:	ff 75 d8             	push   -0x28(%ebp)
50d986:	ff 75 dc             	push   -0x24(%ebp)
50d989:	ff 75 e8             	push   -0x18(%ebp)
50d98c:	e8 af 3d 00 00       	call   0x511740
50d991:	8b 4d e8             	mov    -0x18(%ebp),%ecx
50d994:	8b f0                	mov    %eax,%esi
50d996:	83 c4 0c             	add    $0xc,%esp
50d999:	8b 01                	mov    (%ecx),%eax
50d99b:	85 c0                	test   %eax,%eax
50d99d:	74 12                	je     0x50d9b1
50d99f:	8b 40 04             	mov    0x4(%eax),%eax
50d9a2:	51                   	push   %ecx
50d9a3:	ff d0                	call   *%eax
50d9a5:	8b 45 e8             	mov    -0x18(%ebp),%eax
50d9a8:	83 c4 04             	add    $0x4,%esp
50d9ab:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
50d9b1:	85 f6                	test   %esi,%esi
50d9b3:	0f 85 8e 00 00 00    	jne    0x50da47
50d9b9:	8b 45 dc             	mov    -0x24(%ebp),%eax
50d9bc:	80 38 00             	cmpb   $0x0,(%eax)
50d9bf:	74 2c                	je     0x50d9ed
50d9c1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
50d9c4:	8a 10                	mov    (%eax),%dl
50d9c6:	3a 11                	cmp    (%ecx),%dl
50d9c8:	75 1a                	jne    0x50d9e4
50d9ca:	84 d2                	test   %dl,%dl
50d9cc:	74 12                	je     0x50d9e0
50d9ce:	8a 50 01             	mov    0x1(%eax),%dl
50d9d1:	3a 51 01             	cmp    0x1(%ecx),%dl
50d9d4:	75 0e                	jne    0x50d9e4
50d9d6:	83 c0 02             	add    $0x2,%eax
50d9d9:	83 c1 02             	add    $0x2,%ecx
50d9dc:	84 d2                	test   %dl,%dl
50d9de:	75 e4                	jne    0x50d9c4
50d9e0:	33 c0                	xor    %eax,%eax
50d9e2:	eb 05                	jmp    0x50d9e9
50d9e4:	1b c0                	sbb    %eax,%eax
50d9e6:	83 c8 01             	or     $0x1,%eax
50d9e9:	85 c0                	test   %eax,%eax
50d9eb:	74 5a                	je     0x50da47
50d9ed:	85 ff                	test   %edi,%edi
50d9ef:	75 04                	jne    0x50d9f5
50d9f1:	33 c9                	xor    %ecx,%ecx
50d9f3:	eb 1a                	jmp    0x50da0f
50d9f5:	8b cf                	mov    %edi,%ecx
50d9f7:	8d 51 01             	lea    0x1(%ecx),%edx
50d9fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
50da00:	8a 01                	mov    (%ecx),%al
50da02:	41                   	inc    %ecx
50da03:	84 c0                	test   %al,%al
50da05:	75 f9                	jne    0x50da00
50da07:	2b ca                	sub    %edx,%ecx
50da09:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
50da0f:	47                   	inc    %edi
50da10:	03 f9                	add    %ecx,%edi
50da12:	8b c7                	mov    %edi,%eax
50da14:	2b 45 e4             	sub    -0x1c(%ebp),%eax
50da17:	99                   	cltd
50da18:	3b 55 f4             	cmp    -0xc(%ebp),%edx
50da1b:	0f 8c 22 ff ff ff    	jl     0x50d943
50da21:	7f 09                	jg     0x50da2c
50da23:	3b 45 f0             	cmp    -0x10(%ebp),%eax
50da26:	0f 82 17 ff ff ff    	jb     0x50d943
50da2c:	8b 7d ec             	mov    -0x14(%ebp),%edi
50da2f:	57                   	push   %edi
50da30:	e8 eb 42 02 00       	call   0x531d20
50da35:	8b 43 1c             	mov    0x1c(%ebx),%eax
50da38:	6a 00                	push   $0x0
50da3a:	ff 75 e0             	push   -0x20(%ebp)
50da3d:	53                   	push   %ebx
50da3e:	ff d0                	call   *%eax
50da40:	83 c4 10             	add    $0x10,%esp
50da43:	8b f0                	mov    %eax,%esi
50da45:	eb 03                	jmp    0x50da4a
50da47:	8b 7d ec             	mov    -0x14(%ebp),%edi
50da4a:	ff 75 e4             	push   -0x1c(%ebp)
50da4d:	e8 3e d3 fd ff       	call   0x4ead90
50da52:	83 c4 04             	add    $0x4,%esp
50da55:	85 ff                	test   %edi,%edi
50da57:	74 1e                	je     0x50da77
50da59:	8b 07                	mov    (%edi),%eax
50da5b:	85 c0                	test   %eax,%eax
50da5d:	74 0f                	je     0x50da6e
50da5f:	8b 40 04             	mov    0x4(%eax),%eax
50da62:	57                   	push   %edi
50da63:	ff d0                	call   *%eax
50da65:	83 c4 04             	add    $0x4,%esp
50da68:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
50da6e:	57                   	push   %edi
50da6f:	e8 1c d3 fd ff       	call   0x4ead90
50da74:	83 c4 04             	add    $0x4,%esp
50da77:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50da7a:	8b c6                	mov    %esi,%eax
50da7c:	5f                   	pop    %edi
50da7d:	5e                   	pop    %esi
50da7e:	33 cd                	xor    %ebp,%ecx
50da80:	5b                   	pop    %ebx
50da81:	e8 54 3a 0d 00       	call   0x5e14da
50da86:	8b e5                	mov    %ebp,%esp
50da88:	5d                   	pop    %ebp
50da89:	c3                   	ret
50da8a:	cc                   	int3
50da8b:	cc                   	int3
50da8c:	cc                   	int3
50da8d:	cc                   	int3
50da8e:	cc                   	int3
50da8f:	cc                   	int3
50da90:	55                   	push   %ebp
50da91:	8b ec                	mov    %esp,%ebp
50da93:	56                   	push   %esi
50da94:	8b 75 08             	mov    0x8(%ebp),%esi
50da97:	57                   	push   %edi
50da98:	33 ff                	xor    %edi,%edi
50da9a:	80 7e 10 02          	cmpb   $0x2,0x10(%esi)
50da9e:	73 0c                	jae    0x50daac
50daa0:	80 7e 11 02          	cmpb   $0x2,0x11(%esi)
50daa4:	73 06                	jae    0x50daac
50daa6:	5f                   	pop    %edi
50daa7:	33 c0                	xor    %eax,%eax
50daa9:	5e                   	pop    %esi
50daaa:	5d                   	pop    %ebp
50daab:	c3                   	ret
50daac:	53                   	push   %ebx
50daad:	56                   	push   %esi
50daae:	e8 8d 44 00 00       	call   0x511f40
50dab3:	8b 4e 40             	mov    0x40(%esi),%ecx
50dab6:	83 c4 04             	add    $0x4,%esp
50dab9:	89 4d 08             	mov    %ecx,0x8(%ebp)
50dabc:	8b 01                	mov    (%ecx),%eax
50dabe:	85 c0                	test   %eax,%eax
50dac0:	0f 84 c7 00 00 00    	je     0x50db8d
50dac6:	3d d8 26 6b 00       	cmp    $0x6b26d8,%eax
50dacb:	75 1b                	jne    0x50dae8
50dacd:	85 c0                	test   %eax,%eax
50dacf:	0f 84 b8 00 00 00    	je     0x50db8d
50dad5:	8b 40 04             	mov    0x4(%eax),%eax
50dad8:	51                   	push   %ecx
50dad9:	ff d0                	call   *%eax
50dadb:	8b 45 08             	mov    0x8(%ebp),%eax
50dade:	83 c4 04             	add    $0x4,%esp
50dae1:	89 38                	mov    %edi,(%eax)
50dae3:	e9 a5 00 00 00       	jmp    0x50db8d
50dae8:	8a 46 05             	mov    0x5(%esi),%al
50daeb:	3c 03                	cmp    $0x3,%al
50daed:	75 38                	jne    0x50db27
50daef:	8b 46 48             	mov    0x48(%esi),%eax
50daf2:	0b 46 4c             	or     0x4c(%esi),%eax
50daf5:	75 07                	jne    0x50dafe
50daf7:	33 ff                	xor    %edi,%edi
50daf9:	e9 81 00 00 00       	jmp    0x50db7f
50dafe:	8b 01                	mov    (%ecx),%eax
50db00:	6a 00                	push   $0x0
50db02:	6a 00                	push   $0x0
50db04:	51                   	push   %ecx
50db05:	8b 40 10             	mov    0x10(%eax),%eax
50db08:	ff d0                	call   *%eax
50db0a:	8b f8                	mov    %eax,%edi
50db0c:	83 c4 0c             	add    $0xc,%esp
50db0f:	85 ff                	test   %edi,%edi
50db11:	75 6c                	jne    0x50db7f
50db13:	38 46 08             	cmp    %al,0x8(%esi)
50db16:	74 67                	je     0x50db7f
50db18:	0f b6 46 0a          	movzbl 0xa(%esi),%eax
50db1c:	50                   	push   %eax
50db1d:	ff 76 40             	push   0x40(%esi)
50db20:	e8 5b 43 02 00       	call   0x531e80
50db25:	eb 53                	jmp    0x50db7a
50db27:	3c 01                	cmp    $0x1,%al
50db29:	74 34                	je     0x50db5f
50db2b:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
50db2f:	74 04                	je     0x50db35
50db31:	3c 05                	cmp    $0x5,%al
50db33:	75 2a                	jne    0x50db5f
50db35:	8a 5e 0c             	mov    0xc(%esi),%bl
50db38:	51                   	push   %ecx
50db39:	e8 e2 41 02 00       	call   0x531d20
50db3e:	83 c4 04             	add    $0x4,%esp
50db41:	84 db                	test   %bl,%bl
50db43:	75 48                	jne    0x50db8d
50db45:	0f b6 46 09          	movzbl 0x9(%esi),%eax
50db49:	8b 0e                	mov    (%esi),%ecx
50db4b:	50                   	push   %eax
50db4c:	ff b6 ac 00 00 00    	push   0xac(%esi)
50db52:	8b 41 1c             	mov    0x1c(%ecx),%eax
50db55:	51                   	push   %ecx
50db56:	ff d0                	call   *%eax
50db58:	83 c4 0c             	add    $0xc,%esp
50db5b:	8b f8                	mov    %eax,%edi
50db5d:	eb 2e                	jmp    0x50db8d
50db5f:	39 7d 0c             	cmp    %edi,0xc(%ebp)
50db62:	75 0a                	jne    0x50db6e
50db64:	80 7e 0c 00          	cmpb   $0x0,0xc(%esi)
50db68:	75 04                	jne    0x50db6e
50db6a:	33 c0                	xor    %eax,%eax
50db6c:	eb 05                	jmp    0x50db73
50db6e:	b8 01 00 00 00       	mov    $0x1,%eax
50db73:	50                   	push   %eax
50db74:	56                   	push   %esi
50db75:	e8 86 e2 05 00       	call   0x56be00
50db7a:	83 c4 08             	add    $0x8,%esp
50db7d:	8b f8                	mov    %eax,%edi
50db7f:	c7 46 4c 00 00 00 00 	movl   $0x0,0x4c(%esi)
50db86:	c7 46 48 00 00 00 00 	movl   $0x0,0x48(%esi)
50db8d:	ff 76 38             	push   0x38(%esi)
50db90:	e8 1b cb 00 00       	call   0x51a6b0
50db95:	8b 45 10             	mov    0x10(%ebp),%eax
50db98:	83 c4 04             	add    $0x4,%esp
50db9b:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
50dba2:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
50dba9:	85 ff                	test   %edi,%edi
50dbab:	75 5a                	jne    0x50dc07
50dbad:	80 7e 0f 00          	cmpb   $0x0,0xf(%esi)
50dbb1:	75 32                	jne    0x50dbe5
50dbb3:	50                   	push   %eax
50dbb4:	56                   	push   %esi
50dbb5:	e8 b6 ef ff ff       	call   0x50cb70
50dbba:	83 c4 08             	add    $0x8,%esp
50dbbd:	85 c0                	test   %eax,%eax
50dbbf:	75 24                	jne    0x50dbe5
50dbc1:	8b 8e d4 00 00 00    	mov    0xd4(%esi),%ecx
50dbc7:	8b 01                	mov    (%ecx),%eax
50dbc9:	85 c0                	test   %eax,%eax
50dbcb:	74 10                	je     0x50dbdd
50dbcd:	ba f3 ff 00 00       	mov    $0xfff3,%edx
50dbd2:	66 21 50 1c          	and    %dx,0x1c(%eax)
50dbd6:	8b 40 20             	mov    0x20(%eax),%eax
50dbd9:	85 c0                	test   %eax,%eax
50dbdb:	75 f5                	jne    0x50dbd2
50dbdd:	8b 41 04             	mov    0x4(%ecx),%eax
50dbe0:	89 41 08             	mov    %eax,0x8(%ecx)
50dbe3:	eb 0e                	jmp    0x50dbf3
50dbe5:	ff b6 d4 00 00 00    	push   0xd4(%esi)
50dbeb:	e8 00 65 02 00       	call   0x5340f0
50dbf0:	83 c4 04             	add    $0x4,%esp
50dbf3:	ff 76 18             	push   0x18(%esi)
50dbf6:	ff b6 d4 00 00 00    	push   0xd4(%esi)
50dbfc:	e8 9f 6b 02 00       	call   0x5347a0
50dc01:	8b 45 10             	mov    0x10(%ebp),%eax
50dc04:	83 c4 08             	add    $0x8,%esp
50dc07:	8b 9e d8 00 00 00    	mov    0xd8(%esi),%ebx
50dc0d:	85 db                	test   %ebx,%ebx
50dc0f:	74 31                	je     0x50dc42
50dc11:	80 7b 2c 00          	cmpb   $0x0,0x2c(%ebx)
50dc15:	74 47                	je     0x50dc5e
50dc17:	80 7b 2b 00          	cmpb   $0x0,0x2b(%ebx)
50dc1b:	75 14                	jne    0x50dc31
50dc1d:	8b 43 04             	mov    0x4(%ebx),%eax
50dc20:	6a 09                	push   $0x9
50dc22:	6a 01                	push   $0x1
50dc24:	6a 00                	push   $0x0
50dc26:	8b 08                	mov    (%eax),%ecx
50dc28:	50                   	push   %eax
50dc29:	8b 41 38             	mov    0x38(%ecx),%eax
50dc2c:	ff d0                	call   *%eax
50dc2e:	83 c4 10             	add    $0x10,%esp
50dc31:	c6 43 2c 00          	movb   $0x0,0x2c(%ebx)
50dc35:	c7 43 68 00 00 00 00 	movl   $0x0,0x68(%ebx)
50dc3c:	c6 43 2f 00          	movb   $0x0,0x2f(%ebx)
50dc40:	eb 1c                	jmp    0x50dc5e
50dc42:	85 ff                	test   %edi,%edi
50dc44:	75 41                	jne    0x50dc87
50dc46:	85 c0                	test   %eax,%eax
50dc48:	74 3d                	je     0x50dc87
50dc4a:	8b 46 18             	mov    0x18(%esi),%eax
50dc4d:	39 46 20             	cmp    %eax,0x20(%esi)
50dc50:	76 10                	jbe    0x50dc62
50dc52:	50                   	push   %eax
50dc53:	56                   	push   %esi
50dc54:	e8 37 09 00 00       	call   0x50e590
50dc59:	83 c4 08             	add    $0x8,%esp
50dc5c:	8b f8                	mov    %eax,%edi
50dc5e:	85 ff                	test   %edi,%edi
50dc60:	75 25                	jne    0x50dc87
50dc62:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
50dc66:	74 1f                	je     0x50dc87
50dc68:	8b 46 3c             	mov    0x3c(%esi),%eax
50dc6b:	8b 08                	mov    (%eax),%ecx
50dc6d:	85 c9                	test   %ecx,%ecx
50dc6f:	74 14                	je     0x50dc85
50dc71:	6a 00                	push   $0x0
50dc73:	6a 16                	push   $0x16
50dc75:	50                   	push   %eax
50dc76:	8b 41 28             	mov    0x28(%ecx),%eax
50dc79:	ff d0                	call   *%eax
50dc7b:	8b f8                	mov    %eax,%edi
50dc7d:	83 c4 0c             	add    $0xc,%esp
50dc80:	83 ff 0c             	cmp    $0xc,%edi
50dc83:	75 02                	jne    0x50dc87
50dc85:	33 ff                	xor    %edi,%edi
50dc87:	33 c9                	xor    %ecx,%ecx
50dc89:	38 4e 04             	cmp    %cl,0x4(%esi)
50dc8c:	75 73                	jne    0x50dd01
50dc8e:	8b 9e d8 00 00 00    	mov    0xd8(%esi),%ebx
50dc94:	85 db                	test   %ebx,%ebx
50dc96:	74 3c                	je     0x50dcd4
50dc98:	38 4b 2b             	cmp    %cl,0x2b(%ebx)
50dc9b:	74 2f                	je     0x50dccc
50dc9d:	8b 43 04             	mov    0x4(%ebx),%eax
50dca0:	0f bf 53 28          	movswl 0x28(%ebx),%edx
50dca4:	6a 06                	push   $0x6
50dca6:	88 4b 2b             	mov    %cl,0x2b(%ebx)
50dca9:	83 c2 03             	add    $0x3,%edx
50dcac:	8b 08                	mov    (%eax),%ecx
50dcae:	6a 01                	push   $0x1
50dcb0:	52                   	push   %edx
50dcb1:	50                   	push   %eax
50dcb2:	8b 41 38             	mov    0x38(%ecx),%eax
50dcb5:	ff d0                	call   *%eax
50dcb7:	83 c4 10             	add    $0x10,%esp
50dcba:	85 c0                	test   %eax,%eax
50dcbc:	74 04                	je     0x50dcc2
50dcbe:	c6 43 2b 01          	movb   $0x1,0x2b(%ebx)
50dcc2:	33 c0                	xor    %eax,%eax
50dcc4:	38 43 2b             	cmp    %al,0x2b(%ebx)
50dcc7:	0f 94 c0             	sete   %al
50dcca:	eb 02                	jmp    0x50dcce
50dccc:	33 c0                	xor    %eax,%eax
50dcce:	33 c9                	xor    %ecx,%ecx
50dcd0:	85 c0                	test   %eax,%eax
50dcd2:	74 2d                	je     0x50dd01
50dcd4:	8b 56 3c             	mov    0x3c(%esi),%edx
50dcd7:	33 c9                	xor    %ecx,%ecx
50dcd9:	39 0a                	cmp    %ecx,(%edx)
50dcdb:	74 1e                	je     0x50dcfb
50dcdd:	38 4e 0d             	cmp    %cl,0xd(%esi)
50dce0:	75 0f                	jne    0x50dcf1
50dce2:	8b 02                	mov    (%edx),%eax
50dce4:	6a 01                	push   $0x1
50dce6:	52                   	push   %edx
50dce7:	8b 40 20             	mov    0x20(%eax),%eax
50dcea:	ff d0                	call   *%eax
50dcec:	83 c4 08             	add    $0x8,%esp
50dcef:	8b c8                	mov    %eax,%ecx
50dcf1:	80 7e 11 05          	cmpb   $0x5,0x11(%esi)
50dcf5:	74 04                	je     0x50dcfb
50dcf7:	c6 46 11 01          	movb   $0x1,0x11(%esi)
50dcfb:	8a 46 0c             	mov    0xc(%esi),%al
50dcfe:	88 46 12             	mov    %al,0x12(%esi)
50dd01:	85 ff                	test   %edi,%edi
50dd03:	c6 46 10 01          	movb   $0x1,0x10(%esi)
50dd07:	5b                   	pop    %ebx
50dd08:	0f 44 f9             	cmove  %ecx,%edi
50dd0b:	c6 46 13 00          	movb   $0x0,0x13(%esi)
50dd0f:	8b c7                	mov    %edi,%eax
50dd11:	5f                   	pop    %edi
50dd12:	5e                   	pop    %esi
50dd13:	5d                   	pop    %ebp
50dd14:	c3                   	ret
50dd15:	cc                   	int3
50dd16:	cc                   	int3