50dec5:	e8 76 1c 02 00       	call   0x52fb40
50deca:	8b f8                	mov    %eax,%edi
50decc:	83 c4 14             	add    $0x14,%esp
50decf:	85 ff                	test   %edi,%edi
50ded1:	75 36                	jne    0x50df09
50ded3:	56                   	push   %esi
50ded4:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
50dedb:	c7 46 48 00 00 00 00 	movl   $0x0,0x48(%esi)
50dee2:	c7 46 4c 00 00 00 00 	movl   $0x0,0x4c(%esi)
50dee9:	c6 46 13 00          	movb   $0x0,0x13(%esi)
50deed:	c7 46 50 00 00 00 00 	movl   $0x0,0x50(%esi)
50def4:	c7 46 54 00 00 00 00 	movl   $0x0,0x54(%esi)
50defb:	e8 20 ac 05 00       	call   0x568b20
50df00:	8b f8                	mov    %eax,%edi
50df02:	83 c4 04             	add    $0x4,%esp
50df05:	85 ff                	test   %edi,%edi
50df07:	74 1b                	je     0x50df24
50df09:	ff 76 38             	push   0x38(%esi)
50df0c:	e8 9f c7 00 00       	call   0x51a6b0
50df11:	83 c4 04             	add    $0x4,%esp
50df14:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
50df1b:	8b c7                	mov    %edi,%eax
50df1d:	5b                   	pop    %ebx
50df1e:	5f                   	pop    %edi
50df1f:	5e                   	pop    %esi
50df20:	8b e5                	mov    %ebp,%esp
50df22:	5d                   	pop    %ebp
50df23:	c3                   	ret
50df24:	c6 46 10 03          	movb   $0x3,0x10(%esi)
50df28:	8b c7                	mov    %edi,%eax
50df2a:	5b                   	pop    %ebx
50df2b:	5f                   	pop    %edi
50df2c:	5e                   	pop    %esi
50df2d:	8b e5                	mov    %ebp,%esp
50df2f:	5d                   	pop    %ebp
50df30:	c3                   	ret
50df31:	cc                   	int3
50df32:	cc                   	int3
50df33:	cc                   	int3
50df34:	cc                   	int3
50df35:	cc                   	int3
50df36:	cc                   	int3
50df37:	cc                   	int3
50df38:	cc                   	int3
50df39:	cc                   	int3
50df3a:	cc                   	int3
50df3b:	cc                   	int3
50df3c:	cc                   	int3
50df3d:	cc                   	int3
50df3e:	cc                   	int3
50df3f:	cc                   	int3
50df40:	55                   	push   %ebp
50df41:	8b ec                	mov    %esp,%ebp
50df43:	83 ec 28             	sub    $0x28,%esp
50df46:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50df4b:	33 c5                	xor    %ebp,%eax
50df4d:	89 45 fc             	mov    %eax,-0x4(%ebp)
50df50:	53                   	push   %ebx
50df51:	56                   	push   %esi
50df52:	57                   	push   %edi
50df53:	8b 7d 08             	mov    0x8(%ebp),%edi
50df56:	8d 55 f4             	lea    -0xc(%ebp),%edx
50df59:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
50df60:	33 db                	xor    %ebx,%ebx
50df62:	52                   	push   %edx
50df63:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
50df6a:	8b 07                	mov    (%edi),%eax
50df6c:	89 45 ec             	mov    %eax,-0x14(%ebp)
50df6f:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
50df75:	89 45 d8             	mov    %eax,-0x28(%ebp)
50df78:	8b 47 40             	mov    0x40(%edi),%eax
50df7b:	50                   	push   %eax
50df7c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50df7f:	8b 08                	mov    (%eax),%ecx
50df81:	8b 41 18             	mov    0x18(%ecx),%eax
50df84:	ff d0                	call   *%eax
50df86:	8b f0                	mov    %eax,%esi
50df88:	83 c4 08             	add    $0x8,%esp
50df8b:	85 f6                	test   %esi,%esi
50df8d:	0f 85 f5 01 00 00    	jne    0x50e188
50df93:	8b 07                	mov    (%edi),%eax
50df95:	8b 8f d0 00 00 00    	mov    0xd0(%edi),%ecx
50df9b:	89 4d e8             	mov    %ecx,-0x18(%ebp)
50df9e:	8b 40 08             	mov    0x8(%eax),%eax
50dfa1:	40                   	inc    %eax
50dfa2:	50                   	push   %eax
50dfa3:	51                   	push   %ecx
50dfa4:	ff 77 40             	push   0x40(%edi)
50dfa7:	e8 94 37 00 00       	call   0x511740
50dfac:	8b f0                	mov    %eax,%esi
50dfae:	83 c4 0c             	add    $0xc,%esp
50dfb1:	85 f6                	test   %esi,%esi
50dfb3:	0f 85 cf 01 00 00    	jne    0x50e188
50dfb9:	8b 45 e8             	mov    -0x18(%ebp),%eax
50dfbc:	38 18                	cmp    %bl,(%eax)
50dfbe:	74 1c                	je     0x50dfdc
50dfc0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
50dfc3:	51                   	push   %ecx
50dfc4:	56                   	push   %esi
50dfc5:	50                   	push   %eax
50dfc6:	8b 45 ec             	mov    -0x14(%ebp),%eax
50dfc9:	50                   	push   %eax
50dfca:	8b 40 20             	mov    0x20(%eax),%eax
50dfcd:	ff d0                	call   *%eax
50dfcf:	8b f0                	mov    %eax,%esi
50dfd1:	83 c4 10             	add    $0x10,%esp
50dfd4:	85 f6                	test   %esi,%esi
50dfd6:	0f 85 ac 01 00 00    	jne    0x50e188
50dfdc:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
50dfdf:	0f 84 6b 01 00 00    	je     0x50e150
50dfe5:	8b 45 0c             	mov    0xc(%ebp),%eax
50dfe8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
50dfeb:	51                   	push   %ecx
50dfec:	8d 4d ec             	lea    -0x14(%ebp),%ecx
50dfef:	89 5f 48             	mov    %ebx,0x48(%edi)
50dff2:	51                   	push   %ecx
50dff3:	ff 75 f8             	push   -0x8(%ebp)
50dff6:	8d 77 48             	lea    0x48(%edi),%esi
50dff9:	89 45 e8             	mov    %eax,-0x18(%ebp)
50dffc:	89 5e 04             	mov    %ebx,0x4(%esi)
50dfff:	ff 75 f4             	push   -0xc(%ebp)
50e002:	50                   	push   %eax
50e003:	57                   	push   %edi
50e004:	e8 f7 34 00 00       	call   0x511500
50e009:	83 c4 18             	add    $0x18,%esp
50e00c:	85 c0                	test   %eax,%eax
50e00e:	0f 85 30 01 00 00    	jne    0x50e144
50e014:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50e017:	8b 5d f8             	mov    -0x8(%ebp),%ebx
50e01a:	83 f9 ff             	cmp    $0xffffffff,%ecx
50e01d:	75 29                	jne    0x50e048
50e01f:	8b 75 f4             	mov    -0xc(%ebp),%esi
50e022:	8b cb                	mov    %ebx,%ecx
50e024:	2b b7 94 00 00 00    	sub    0x94(%edi),%esi
50e02a:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
50e030:	83 d9 00             	sbb    $0x0,%ecx
50e033:	83 c0 08             	add    $0x8,%eax
50e036:	99                   	cltd
50e037:	52                   	push   %edx
50e038:	50                   	push   %eax
50e039:	51                   	push   %ecx
50e03a:	56                   	push   %esi
50e03b:	e8 00 3b 0d 00       	call   0x5e1b40
50e040:	8b c8                	mov    %eax,%ecx
50e042:	8d 77 48             	lea    0x48(%edi),%esi
50e045:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50e048:	85 c9                	test   %ecx,%ecx
50e04a:	75 41                	jne    0x50e08d
50e04c:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
50e04f:	75 3c                	jne    0x50e08d
50e051:	8b 06                	mov    (%esi),%eax
50e053:	8b 56 04             	mov    0x4(%esi),%edx
50e056:	89 45 dc             	mov    %eax,-0x24(%ebp)
50e059:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
50e05f:	03 47 50             	add    0x50(%edi),%eax
50e062:	13 4f 54             	adc    0x54(%edi),%ecx
50e065:	3b 06                	cmp    (%esi),%eax
50e067:	75 24                	jne    0x50e08d
50e069:	3b ca                	cmp    %edx,%ecx
50e06b:	75 20                	jne    0x50e08d
50e06d:	8b 75 f4             	mov    -0xc(%ebp),%esi
50e070:	8b cb                	mov    %ebx,%ecx
50e072:	2b 75 dc             	sub    -0x24(%ebp),%esi
50e075:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
50e07b:	1b ca                	sbb    %edx,%ecx
50e07d:	83 c0 08             	add    $0x8,%eax
50e080:	99                   	cltd
50e081:	52                   	push   %edx
50e082:	50                   	push   %eax
50e083:	51                   	push   %ecx
50e084:	56                   	push   %esi
50e085:	e8 b6 3a 0d 00       	call   0x5e1b40
50e08a:	89 45 ec             	mov    %eax,-0x14(%ebp)
50e08d:	8b 87 94 00 00 00    	mov    0x94(%edi),%eax
50e093:	8d 77 48             	lea    0x48(%edi),%esi
50e096:	39 06                	cmp    %eax,(%esi)
50e098:	75 23                	jne    0x50e0bd
50e09a:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
50e09e:	75 1d                	jne    0x50e0bd
50e0a0:	8b 5d e0             	mov    -0x20(%ebp),%ebx
50e0a3:	53                   	push   %ebx
50e0a4:	57                   	push   %edi
50e0a5:	e8 e6 04 00 00       	call   0x50e590
50e0aa:	8b f0                	mov    %eax,%esi
50e0ac:	83 c4 08             	add    $0x8,%esp
50e0af:	85 f6                	test   %esi,%esi
50e0b1:	0f 85 ce 00 00 00    	jne    0x50e185
50e0b7:	89 5f 18             	mov    %ebx,0x18(%edi)
50e0ba:	8d 77 48             	lea    0x48(%edi),%esi
50e0bd:	33 db                	xor    %ebx,%ebx
50e0bf:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
50e0c2:	76 57                	jbe    0x50e11b
50e0c4:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
50e0c8:	74 2f                	je     0x50e0f9
50e0ca:	ff 47 64             	incl   0x64(%edi)
50e0cd:	8b 47 58             	mov    0x58(%edi),%eax
50e0d0:	85 c0                	test   %eax,%eax
50e0d2:	74 0e                	je     0x50e0e2
50e0d4:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
50e0db:	8b 40 2c             	mov    0x2c(%eax),%eax
50e0de:	85 c0                	test   %eax,%eax
50e0e0:	75 f2                	jne    0x50e0d4
50e0e2:	6a 00                	push   $0x0
50e0e4:	ff b7 d4 00 00 00    	push   0xd4(%edi)
50e0ea:	e8 b1 66 02 00       	call   0x5347a0
50e0ef:	83 c4 08             	add    $0x8,%esp
50e0f2:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
50e0f9:	6a 00                	push   $0x0
50e0fb:	6a 01                	push   $0x1
50e0fd:	6a 00                	push   $0x0
50e0ff:	56                   	push   %esi
50e100:	57                   	push   %edi
50e101:	e8 8a 01 00 00       	call   0x50e290
50e106:	8b f0                	mov    %eax,%esi
50e108:	83 c4 14             	add    $0x14,%esp
50e10b:	85 f6                	test   %esi,%esi
50e10d:	75 54                	jne    0x50e163
50e10f:	ff 45 e4             	incl   -0x1c(%ebp)
50e112:	8d 77 48             	lea    0x48(%edi),%esi
50e115:	43                   	inc    %ebx
50e116:	3b 5d ec             	cmp    -0x14(%ebp),%ebx
50e119:	72 a9                	jb     0x50e0c4
50e11b:	8b 45 f8             	mov    -0x8(%ebp),%eax
50e11e:	8d 77 48             	lea    0x48(%edi),%esi
50e121:	8d 4d e0             	lea    -0x20(%ebp),%ecx
50e124:	51                   	push   %ecx
50e125:	8d 4d ec             	lea    -0x14(%ebp),%ecx
50e128:	51                   	push   %ecx
50e129:	50                   	push   %eax
50e12a:	ff 75 f4             	push   -0xc(%ebp)
50e12d:	ff 75 0c             	push   0xc(%ebp)
50e130:	57                   	push   %edi
50e131:	e8 ca 33 00 00       	call   0x511500
50e136:	83 c4 18             	add    $0x18,%esp
50e139:	85 c0                	test   %eax,%eax
50e13b:	0f 84 d3 fe ff ff    	je     0x50e014
50e141:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50e144:	33 f6                	xor    %esi,%esi
50e146:	83 f8 65             	cmp    $0x65,%eax
50e149:	0f 45 f0             	cmovne %eax,%esi
50e14c:	85 f6                	test   %esi,%esi
50e14e:	75 38                	jne    0x50e188
50e150:	6a ff                	push   $0xffffffff
50e152:	8d 45 d8             	lea    -0x28(%ebp),%eax
50e155:	50                   	push   %eax
50e156:	57                   	push   %edi
50e157:	e8 54 53 02 00       	call   0x5334b0
50e15c:	83 c4 0c             	add    $0xc,%esp
50e15f:	8b f0                	mov    %eax,%esi
50e161:	eb 25                	jmp    0x50e188
50e163:	83 fe 65             	cmp    $0x65,%esi
50e166:	75 10                	jne    0x50e178
50e168:	8b 45 f4             	mov    -0xc(%ebp),%eax
50e16b:	8d 77 48             	lea    0x48(%edi),%esi
50e16e:	89 06                	mov    %eax,(%esi)
50e170:	8b 45 f8             	mov    -0x8(%ebp),%eax
50e173:	89 46 04             	mov    %eax,0x4(%esi)
50e176:	eb a9                	jmp    0x50e121
50e178:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50e17b:	81 fe 0a 02 00 00    	cmp    $0x20a,%esi
50e181:	74 cd                	je     0x50e150
50e183:	eb c7                	jmp    0x50e14c
50e185:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50e188:	8a 47 0c             	mov    0xc(%edi),%al
50e18b:	88 47 12             	mov    %al,0x12(%edi)
50e18e:	85 f6                	test   %esi,%esi
50e190:	0f 85 b4 00 00 00    	jne    0x50e24a
50e196:	8b 07                	mov    (%edi),%eax
50e198:	8b 8f d0 00 00 00    	mov    0xd0(%edi),%ecx
50e19e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
50e1a1:	8b 40 08             	mov    0x8(%eax),%eax
50e1a4:	40                   	inc    %eax
50e1a5:	50                   	push   %eax
50e1a6:	51                   	push   %ecx
50e1a7:	ff 77 40             	push   0x40(%edi)
50e1aa:	e8 91 35 00 00       	call   0x511740
50e1af:	8b f0                	mov    %eax,%esi
50e1b1:	83 c4 0c             	add    $0xc,%esp
50e1b4:	85 f6                	test   %esi,%esi
50e1b6:	0f 85 8e 00 00 00    	jne    0x50e24a
50e1bc:	8a 47 10             	mov    0x10(%edi),%al
50e1bf:	3c 04                	cmp    $0x4,%al
50e1c1:	73 04                	jae    0x50e1c7
50e1c3:	84 c0                	test   %al,%al
50e1c5:	75 4e                	jne    0x50e215
50e1c7:	8b 47 3c             	mov    0x3c(%edi),%eax
50e1ca:	8b 08                	mov    (%eax),%ecx
50e1cc:	85 c9                	test   %ecx,%ecx
50e1ce:	75 05                	jne    0x50e1d5
50e1d0:	8d 41 0c             	lea    0xc(%ecx),%eax
50e1d3:	eb 0d                	jmp    0x50e1e2
50e1d5:	6a 00                	push   $0x0
50e1d7:	6a 15                	push   $0x15
50e1d9:	50                   	push   %eax
50e1da:	8b 41 28             	mov    0x28(%ecx),%eax
50e1dd:	ff d0                	call   *%eax
50e1df:	83 c4 0c             	add    $0xc,%esp
50e1e2:	33 f6                	xor    %esi,%esi
50e1e4:	83 f8 0c             	cmp    $0xc,%eax
50e1e7:	0f 45 f0             	cmovne %eax,%esi
50e1ea:	85 f6                	test   %esi,%esi
50e1ec:	75 5c                	jne    0x50e24a
50e1ee:	80 7f 07 00          	cmpb   $0x0,0x7(%edi)
50e1f2:	75 1d                	jne    0x50e211
50e1f4:	0f b6 4f 0a          	movzbl 0xa(%edi),%ecx
50e1f8:	8b 57 3c             	mov    0x3c(%edi),%edx
50e1fb:	85 c9                	test   %ecx,%ecx
50e1fd:	74 10                	je     0x50e20f
50e1ff:	8b 02                	mov    (%edx),%eax
50e201:	51                   	push   %ecx
50e202:	52                   	push   %edx
50e203:	8b 40 14             	mov    0x14(%eax),%eax
50e206:	ff d0                	call   *%eax
50e208:	83 c4 08             	add    $0x8,%esp
50e20b:	8b f0                	mov    %eax,%esi
50e20d:	eb 02                	jmp    0x50e211
50e20f:	33 f6                	xor    %esi,%esi
50e211:	85 f6                	test   %esi,%esi
50e213:	75 35                	jne    0x50e24a
50e215:	8b 4d e8             	mov    -0x18(%ebp),%ecx
50e218:	33 c0                	xor    %eax,%eax
50e21a:	6a 00                	push   $0x0
50e21c:	38 01                	cmp    %al,(%ecx)
50e21e:	0f 95 c0             	setne  %al
50e221:	50                   	push   %eax
50e222:	57                   	push   %edi
50e223:	e8 68 f8 ff ff       	call   0x50da90
50e228:	8b f0                	mov    %eax,%esi
50e22a:	83 c4 0c             	add    $0xc,%esp
50e22d:	85 f6                	test   %esi,%esi
50e22f:	75 19                	jne    0x50e24a
50e231:	8b 45 e8             	mov    -0x18(%ebp),%eax
50e234:	80 38 00             	cmpb   $0x0,(%eax)
50e237:	74 11                	je     0x50e24a
50e239:	39 75 f0             	cmp    %esi,-0x10(%ebp)
50e23c:	74 0c                	je     0x50e24a
50e23e:	50                   	push   %eax
50e23f:	57                   	push   %edi
50e240:	e8 eb f5 ff ff       	call   0x50d830
50e245:	83 c4 08             	add    $0x8,%esp
50e248:	8b f0                	mov    %eax,%esi
50e24a:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
50e24e:	74 1d                	je     0x50e26d
50e250:	85 db                	test   %ebx,%ebx
50e252:	74 19                	je     0x50e26d
50e254:	ff b7 ac 00 00 00    	push   0xac(%edi)
50e25a:	53                   	push   %ebx
50e25b:	68 2c 82 6b 00       	push   $0x6b822c
50e260:	68 1b 02 00 00       	push   $0x21b
50e265:	e8 76 1d fd ff       	call   0x4dffe0