50cf2d:	cc                   	int3
50cf2e:	cc                   	int3
50cf2f:	cc                   	int3
50cf30:	55                   	push   %ebp
50cf31:	8b ec                	mov    %esp,%ebp
50cf33:	83 ec 20             	sub    $0x20,%esp
50cf36:	53                   	push   %ebx
50cf37:	56                   	push   %esi
50cf38:	8b 75 0c             	mov    0xc(%ebp),%esi
50cf3b:	33 db                	xor    %ebx,%ebx
50cf3d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50cf40:	85 f6                	test   %esi,%esi
50cf42:	74 25                	je     0x50cf69
50cf44:	ff 76 14             	push   0x14(%esi)
50cf47:	e8 e4 d6 00 00       	call   0x51a630
50cf4c:	8b d0                	mov    %eax,%edx
50cf4e:	83 c4 04             	add    $0x4,%esp
50cf51:	89 55 fc             	mov    %edx,-0x4(%ebp)
50cf54:	85 d2                	test   %edx,%edx
50cf56:	75 09                	jne    0x50cf61
50cf58:	5e                   	pop    %esi
50cf59:	8d 43 07             	lea    0x7(%ebx),%eax
50cf5c:	5b                   	pop    %ebx
50cf5d:	8b e5                	mov    %ebp,%esp
50cf5f:	5d                   	pop    %ebp
50cf60:	c3                   	ret
50cf61:	8b 46 14             	mov    0x14(%esi),%eax
50cf64:	8b 4d 08             	mov    0x8(%ebp),%ecx
50cf67:	eb 06                	jmp    0x50cf6f
50cf69:	8b 4d 08             	mov    0x8(%ebp),%ecx
50cf6c:	8b 41 1c             	mov    0x1c(%ecx),%eax
50cf6f:	89 41 18             	mov    %eax,0x18(%ecx)
50cf72:	8a 41 0c             	mov    0xc(%ecx),%al
50cf75:	88 41 12             	mov    %al,0x12(%ecx)
50cf78:	85 f6                	test   %esi,%esi
50cf7a:	75 17                	jne    0x50cf93
50cf7c:	39 99 d8 00 00 00    	cmp    %ebx,0xd8(%ecx)
50cf82:	74 0f                	je     0x50cf93
50cf84:	51                   	push   %ecx
50cf85:	e8 56 02 00 00       	call   0x50d1e0
50cf8a:	83 c4 04             	add    $0x4,%esp
50cf8d:	5e                   	pop    %esi
50cf8e:	5b                   	pop    %ebx
50cf8f:	8b e5                	mov    %ebp,%esp
50cf91:	5d                   	pop    %ebp
50cf92:	c3                   	ret
50cf93:	8b 45 0c             	mov    0xc(%ebp),%eax
50cf96:	8d 71 48             	lea    0x48(%ecx),%esi
50cf99:	8b 56 04             	mov    0x4(%esi),%edx
50cf9c:	89 75 e8             	mov    %esi,-0x18(%ebp)
50cf9f:	89 55 f8             	mov    %edx,-0x8(%ebp)
50cfa2:	57                   	push   %edi
50cfa3:	8b 3e                	mov    (%esi),%edi
50cfa5:	89 7d f0             	mov    %edi,-0x10(%ebp)
50cfa8:	85 c0                	test   %eax,%eax
50cfaa:	0f 84 48 01 00 00    	je     0x50d0f8
50cfb0:	39 99 d8 00 00 00    	cmp    %ebx,0xd8(%ecx)
50cfb6:	0f 85 3c 01 00 00    	jne    0x50d0f8
50cfbc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50cfbf:	8b 40 08             	mov    0x8(%eax),%eax
50cfc2:	89 45 ec             	mov    %eax,-0x14(%ebp)
50cfc5:	8b 49 0c             	mov    0xc(%ecx),%ecx
50cfc8:	0b c1                	or     %ecx,%eax
50cfca:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50cfcd:	74 04                	je     0x50cfd3
50cfcf:	8b d1                	mov    %ecx,%edx
50cfd1:	eb 06                	jmp    0x50cfd9
50cfd3:	89 7d ec             	mov    %edi,-0x14(%ebp)
50cfd6:	89 55 f4             	mov    %edx,-0xc(%ebp)
50cfd9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50cfdc:	8b 01                	mov    (%ecx),%eax
50cfde:	89 06                	mov    %eax,(%esi)
50cfe0:	8b 41 04             	mov    0x4(%ecx),%eax
50cfe3:	8b 4d 08             	mov    0x8(%ebp),%ecx
50cfe6:	89 46 04             	mov    %eax,0x4(%esi)
50cfe9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
50cff0:	39 56 04             	cmp    %edx,0x4(%esi)
50cff3:	0f 8f f2 00 00 00    	jg     0x50d0eb
50cff9:	7c 0b                	jl     0x50d006
50cffb:	8b 45 ec             	mov    -0x14(%ebp),%eax
50cffe:	39 06                	cmp    %eax,(%esi)
50d000:	0f 83 e5 00 00 00    	jae    0x50d0eb
50d006:	6a 01                	push   $0x1
50d008:	6a 01                	push   $0x1
50d00a:	ff 75 fc             	push   -0x4(%ebp)
50d00d:	56                   	push   %esi
50d00e:	51                   	push   %ecx
50d00f:	e8 7c 12 00 00       	call   0x50e290
50d014:	8b 4d 08             	mov    0x8(%ebp),%ecx
50d017:	8b d8                	mov    %eax,%ebx
50d019:	8b 55 f4             	mov    -0xc(%ebp),%edx
50d01c:	83 c4 14             	add    $0x14,%esp
50d01f:	85 db                	test   %ebx,%ebx
50d021:	74 cd                	je     0x50cff0
50d023:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50d026:	85 c9                	test   %ecx,%ecx
50d028:	0f 84 9a 00 00 00    	je     0x50d0c8
50d02e:	8b 7d 08             	mov    0x8(%ebp),%edi
50d031:	6a 00                	push   $0x0
50d033:	ff 71 18             	push   0x18(%ecx)
50d036:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
50d03c:	83 c0 04             	add    $0x4,%eax
50d03f:	99                   	cltd
50d040:	52                   	push   %edx
50d041:	50                   	push   %eax
50d042:	e8 b9 4a 0d 00       	call   0x5e1b00
50d047:	8b 8f d8 00 00 00    	mov    0xd8(%edi),%ecx
50d04d:	89 45 e0             	mov    %eax,-0x20(%ebp)
50d050:	89 55 e4             	mov    %edx,-0x1c(%ebp)
50d053:	85 c9                	test   %ecx,%ecx
50d055:	74 3a                	je     0x50d091
50d057:	8b 55 0c             	mov    0xc(%ebp),%edx
50d05a:	8b 42 28             	mov    0x28(%edx),%eax
50d05d:	3b 41 70             	cmp    0x70(%ecx),%eax
50d060:	74 0d                	je     0x50d06f
50d062:	c7 42 1c 00 00 00 00 	movl   $0x0,0x1c(%edx)
50d069:	8b 41 70             	mov    0x70(%ecx),%eax
50d06c:	89 42 28             	mov    %eax,0x28(%edx)
50d06f:	8b 42 1c             	mov    0x1c(%edx),%eax
50d072:	3b 41 44             	cmp    0x44(%ecx),%eax
50d075:	73 18                	jae    0x50d08f
50d077:	89 41 44             	mov    %eax,0x44(%ecx)
50d07a:	8b 42 20             	mov    0x20(%edx),%eax
50d07d:	89 41 4c             	mov    %eax,0x4c(%ecx)
50d080:	8b 42 24             	mov    0x24(%edx),%eax
50d083:	51                   	push   %ecx
50d084:	89 41 50             	mov    %eax,0x50(%ecx)
50d087:	e8 24 15 05 00       	call   0x55e5b0
50d08c:	83 c4 04             	add    $0x4,%esp
50d08f:	33 db                	xor    %ebx,%ebx
50d091:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50d094:	8b 41 18             	mov    0x18(%ecx),%eax
50d097:	89 45 0c             	mov    %eax,0xc(%ebp)
50d09a:	85 db                	test   %ebx,%ebx
50d09c:	75 2a                	jne    0x50d0c8
50d09e:	8b 75 fc             	mov    -0x4(%ebp),%esi
50d0a1:	3b 47 34             	cmp    0x34(%edi),%eax
50d0a4:	73 1f                	jae    0x50d0c5
50d0a6:	6a 01                	push   $0x1
50d0a8:	6a 00                	push   $0x0
50d0aa:	56                   	push   %esi
50d0ab:	8d 45 e0             	lea    -0x20(%ebp),%eax
50d0ae:	50                   	push   %eax
50d0af:	57                   	push   %edi
50d0b0:	e8 db 11 00 00       	call   0x50e290
50d0b5:	8b d8                	mov    %eax,%ebx
50d0b7:	83 c4 14             	add    $0x14,%esp
50d0ba:	8b 45 0c             	mov    0xc(%ebp),%eax
50d0bd:	40                   	inc    %eax
50d0be:	89 45 0c             	mov    %eax,0xc(%ebp)
50d0c1:	85 db                	test   %ebx,%ebx
50d0c3:	74 dc                	je     0x50d0a1
50d0c5:	8b 75 e8             	mov    -0x18(%ebp),%esi
50d0c8:	ff 75 fc             	push   -0x4(%ebp)
50d0cb:	e8 e0 d5 00 00       	call   0x51a6b0
50d0d0:	83 c4 04             	add    $0x4,%esp
50d0d3:	5f                   	pop    %edi
50d0d4:	85 db                	test   %ebx,%ebx
50d0d6:	75 0b                	jne    0x50d0e3
50d0d8:	8b 45 f0             	mov    -0x10(%ebp),%eax
50d0db:	89 06                	mov    %eax,(%esi)
50d0dd:	8b 45 f8             	mov    -0x8(%ebp),%eax
50d0e0:	89 46 04             	mov    %eax,0x4(%esi)
50d0e3:	5e                   	pop    %esi
50d0e4:	8b c3                	mov    %ebx,%eax
50d0e6:	5b                   	pop    %ebx
50d0e7:	8b e5                	mov    %ebp,%esp
50d0e9:	5d                   	pop    %ebp
50d0ea:	c3                   	ret
50d0eb:	85 db                	test   %ebx,%ebx
50d0ed:	0f 85 30 ff ff ff    	jne    0x50d023
50d0f3:	8b 55 f8             	mov    -0x8(%ebp),%edx
50d0f6:	eb 0b                	jmp    0x50d103
50d0f8:	89 1e                	mov    %ebx,(%esi)
50d0fa:	89 5e 04             	mov    %ebx,0x4(%esi)
50d0fd:	eb 04                	jmp    0x50d103
50d0ff:	90                   	nop
50d100:	8b 7d f0             	mov    -0x10(%ebp),%edi
50d103:	39 56 04             	cmp    %edx,0x4(%esi)
50d106:	0f 8f 17 ff ff ff    	jg     0x50d023
50d10c:	7c 08                	jl     0x50d116
50d10e:	39 3e                	cmp    %edi,(%esi)
50d110:	0f 83 0d ff ff ff    	jae    0x50d023
50d116:	8d 45 e4             	lea    -0x1c(%ebp),%eax
50d119:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
50d120:	50                   	push   %eax
50d121:	8d 45 ec             	lea    -0x14(%ebp),%eax
50d124:	50                   	push   %eax
50d125:	52                   	push   %edx
50d126:	57                   	push   %edi
50d127:	6a 00                	push   $0x0
50d129:	51                   	push   %ecx
50d12a:	e8 d1 43 00 00       	call   0x511500
50d12f:	8b 4d 08             	mov    0x8(%ebp),%ecx
50d132:	8b d8                	mov    %eax,%ebx
50d134:	8b 45 ec             	mov    -0x14(%ebp),%eax
50d137:	83 c4 18             	add    $0x18,%esp
50d13a:	89 45 f4             	mov    %eax,-0xc(%ebp)
50d13d:	85 c0                	test   %eax,%eax
50d13f:	75 3d                	jne    0x50d17e
50d141:	8b 81 94 00 00 00    	mov    0x94(%ecx),%eax
50d147:	33 d2                	xor    %edx,%edx
50d149:	03 41 50             	add    0x50(%ecx),%eax
50d14c:	13 51 54             	adc    0x54(%ecx),%edx
50d14f:	3b 06                	cmp    (%esi),%eax
50d151:	75 28                	jne    0x50d17b
50d153:	3b 56 04             	cmp    0x4(%esi),%edx
50d156:	75 23                	jne    0x50d17b
50d158:	8b 81 98 00 00 00    	mov    0x98(%ecx),%eax
50d15e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
50d161:	83 c0 08             	add    $0x8,%eax
50d164:	2b 3e                	sub    (%esi),%edi
50d166:	99                   	cltd
50d167:	1b 4e 04             	sbb    0x4(%esi),%ecx
50d16a:	52                   	push   %edx
50d16b:	50                   	push   %eax
50d16c:	51                   	push   %ecx
50d16d:	57                   	push   %edi
50d16e:	e8 cd 49 0d 00       	call   0x5e1b40
50d173:	8b 4d 08             	mov    0x8(%ebp),%ecx
50d176:	89 45 f4             	mov    %eax,-0xc(%ebp)
50d179:	eb 03                	jmp    0x50d17e
50d17b:	8b 45 f4             	mov    -0xc(%ebp),%eax
50d17e:	33 ff                	xor    %edi,%edi
50d180:	85 db                	test   %ebx,%ebx
50d182:	0f 85 9b fe ff ff    	jne    0x50d023
50d188:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
50d18f:	00
50d190:	8b 55 f8             	mov    -0x8(%ebp),%edx
50d193:	3b f8                	cmp    %eax,%edi
50d195:	0f 83 65 ff ff ff    	jae    0x50d100
50d19b:	39 56 04             	cmp    %edx,0x4(%esi)
50d19e:	0f 8f 5c ff ff ff    	jg     0x50d100
50d1a4:	7c 0b                	jl     0x50d1b1
50d1a6:	8b 45 f0             	mov    -0x10(%ebp),%eax
50d1a9:	39 06                	cmp    %eax,(%esi)
50d1ab:	0f 83 4f ff ff ff    	jae    0x50d100
50d1b1:	6a 01                	push   $0x1
50d1b3:	6a 01                	push   $0x1
50d1b5:	ff 75 fc             	push   -0x4(%ebp)
50d1b8:	56                   	push   %esi
50d1b9:	51                   	push   %ecx
50d1ba:	e8 d1 10 00 00       	call   0x50e290
50d1bf:	8b d8                	mov    %eax,%ebx
50d1c1:	83 c4 14             	add    $0x14,%esp
50d1c4:	47                   	inc    %edi
50d1c5:	85 db                	test   %ebx,%ebx
50d1c7:	0f 85 56 fe ff ff    	jne    0x50d023
50d1cd:	8b 4d 08             	mov    0x8(%ebp),%ecx
50d1d0:	8b 45 f4             	mov    -0xc(%ebp),%eax
50d1d3:	eb bb                	jmp    0x50d190
50d1d5:	cc                   	int3
50d1d6:	cc                   	int3
50d1d7:	cc                   	int3
50d1d8:	cc                   	int3
50d1d9:	cc                   	int3
50d1da:	cc                   	int3
50d1db:	cc                   	int3
50d1dc:	cc                   	int3
50d1dd:	cc                   	int3
50d1de:	cc                   	int3
50d1df:	cc                   	int3
50d1e0:	55                   	push   %ebp
50d1e1:	8b ec                	mov    %esp,%ebp
50d1e3:	53                   	push   %ebx
50d1e4:	8b 5d 08             	mov    0x8(%ebp),%ebx
50d1e7:	57                   	push   %edi
50d1e8:	53                   	push   %ebx
50d1e9:	68 40 d3 50 00       	push   $0x50d340
50d1ee:	8b 43 1c             	mov    0x1c(%ebx),%eax
50d1f1:	ff b3 d8 00 00 00    	push   0xd8(%ebx)
50d1f7:	89 43 18             	mov    %eax,0x18(%ebx)
50d1fa:	e8 e1 2a 04 00       	call   0x54fce0
50d1ff:	ff b3 d4 00 00 00    	push   0xd4(%ebx)
50d205:	8b f8                	mov    %eax,%edi
50d207:	e8 74 6f 02 00       	call   0x534180
50d20c:	83 c4 10             	add    $0x10,%esp
50d20f:	85 c0                	test   %eax,%eax
50d211:	74 23                	je     0x50d236
50d213:	56                   	push   %esi
50d214:	85 ff                	test   %edi,%edi
50d216:	75 17                	jne    0x50d22f
50d218:	ff 70 18             	push   0x18(%eax)
50d21b:	8b 70 10             	mov    0x10(%eax),%esi
50d21e:	53                   	push   %ebx
50d21f:	e8 1c 01 00 00       	call   0x50d340
50d224:	83 c4 08             	add    $0x8,%esp
50d227:	8b f8                	mov    %eax,%edi
50d229:	8b c6                	mov    %esi,%eax
50d22b:	85 f6                	test   %esi,%esi
50d22d:	75 e5                	jne    0x50d214
50d22f:	5e                   	pop    %esi
50d230:	8b c7                	mov    %edi,%eax
50d232:	5f                   	pop    %edi
50d233:	5b                   	pop    %ebx
50d234:	5d                   	pop    %ebp
50d235:	c3                   	ret
50d236:	8b c7                	mov    %edi,%eax
50d238:	5f                   	pop    %edi
50d239:	5b                   	pop    %ebx
50d23a:	5d                   	pop    %ebp
50d23b:	c3                   	ret
50d23c:	cc                   	int3
50d23d:	cc                   	int3
50d23e:	cc                   	int3
50d23f:	cc                   	int3
50d240:	55                   	push   %ebp
50d241:	8b ec                	mov    %esp,%ebp
50d243:	56                   	push   %esi
50d244:	8b 75 08             	mov    0x8(%ebp),%esi
50d247:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
50d24b:	74 05                	je     0x50d252
50d24d:	33 c0                	xor    %eax,%eax
50d24f:	5e                   	pop    %esi
50d250:	5d                   	pop    %ebp
50d251:	c3                   	ret
50d252:	8a 46 14             	mov    0x14(%esi),%al
50d255:	57                   	push   %edi
50d256:	8b 7d 0c             	mov    0xc(%ebp),%edi
50d259:	84 c0                	test   %al,%al
50d25b:	74 10                	je     0x50d26d
50d25d:	a8 03                	test   $0x3,%al
50d25f:	75 06                	jne    0x50d267
50d261:	f6 47 1c 08          	testb  $0x8,0x1c(%edi)
50d265:	74 06                	je     0x50d26d
50d267:	5f                   	pop    %edi
50d268:	33 c0                	xor    %eax,%eax
50d26a:	5e                   	pop    %esi
50d26b:	5d                   	pop    %ebp
50d26c:	c3                   	ret
50d26d:	ff 86 c4 00 00 00    	incl   0xc4(%esi)
50d273:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
50d27a:	83 be d8 00 00 00 00 	cmpl   $0x0,0xd8(%esi)
50d281:	53                   	push   %ebx
50d282:	74 2c                	je     0x50d2b0
50d284:	57                   	push   %edi
50d285:	e8 96 a7 04 00       	call   0x557a20
50d28a:	83 c4 04             	add    $0x4,%esp
50d28d:	85 c0                	test   %eax,%eax
50d28f:	74 0f                	je     0x50d2a0
50d291:	57                   	push   %edi
50d292:	e8 89 a8 04 00       	call   0x557b20
50d297:	8b d8                	mov    %eax,%ebx
50d299:	83 c4 04             	add    $0x4,%esp
50d29c:	85 db                	test   %ebx,%ebx
50d29e:	75 46                	jne    0x50d2e6
50d2a0:	6a 00                	push   $0x0
50d2a2:	6a 00                	push   $0x0
50d2a4:	57                   	push   %edi
50d2a5:	56                   	push   %esi