50cd8f:	e8 bc fc ff ff       	call   0x50ca50
50cd94:	8b f8                	mov    %eax,%edi
50cd96:	83 c4 04             	add    $0x4,%esp
50cd99:	85 ff                	test   %edi,%edi
50cd9b:	75 2d                	jne    0x50cdca
50cd9d:	8d 86 d8 00 00 00    	lea    0xd8(%esi),%eax
50cda3:	50                   	push   %eax
50cda4:	ff b6 a4 00 00 00    	push   0xa4(%esi)
50cdaa:	0f b6 46 04          	movzbl 0x4(%esi),%eax
50cdae:	ff b6 a0 00 00 00    	push   0xa0(%esi)
50cdb4:	50                   	push   %eax
50cdb5:	ff b6 dc 00 00 00    	push   0xdc(%esi)
50cdbb:	ff 76 3c             	push   0x3c(%esi)
50cdbe:	ff 36                	push   (%esi)
50cdc0:	e8 cb 2d 04 00       	call   0x54fb90
50cdc5:	83 c4 1c             	add    $0x1c,%esp
50cdc8:	8b f8                	mov    %eax,%edi
50cdca:	56                   	push   %esi
50cdcb:	e8 00 fd ff ff       	call   0x50cad0
50cdd0:	83 c4 04             	add    $0x4,%esp
50cdd3:	8b c7                	mov    %edi,%eax
50cdd5:	5f                   	pop    %edi
50cdd6:	5e                   	pop    %esi
50cdd7:	5d                   	pop    %ebp
50cdd8:	c3                   	ret
50cdd9:	cc                   	int3
50cdda:	cc                   	int3
50cddb:	cc                   	int3
50cddc:	cc                   	int3
50cddd:	cc                   	int3
50cdde:	cc                   	int3
50cddf:	cc                   	int3
50cde0:	55                   	push   %ebp
50cde1:	8b ec                	mov    %esp,%ebp
50cde3:	83 ec 0c             	sub    $0xc,%esp
50cde6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50cdeb:	33 c5                	xor    %ebp,%eax
50cded:	89 45 fc             	mov    %eax,-0x4(%ebp)
50cdf0:	56                   	push   %esi
50cdf1:	8b 75 08             	mov    0x8(%ebp),%esi
50cdf4:	33 c0                	xor    %eax,%eax
50cdf6:	38 46 0c             	cmp    %al,0xc(%esi)
50cdf9:	75 79                	jne    0x50ce74
50cdfb:	8b 06                	mov    (%esi),%eax
50cdfd:	8d 4d f8             	lea    -0x8(%ebp),%ecx
50ce00:	51                   	push   %ecx
50ce01:	6a 00                	push   $0x0
50ce03:	ff b6 dc 00 00 00    	push   0xdc(%esi)
50ce09:	50                   	push   %eax
50ce0a:	8b 40 20             	mov    0x20(%eax),%eax
50ce0d:	ff d0                	call   *%eax
50ce0f:	83 c4 10             	add    $0x10,%esp
50ce12:	85 c0                	test   %eax,%eax
50ce14:	75 5e                	jne    0x50ce74
50ce16:	39 45 f8             	cmp    %eax,-0x8(%ebp)
50ce19:	74 4f                	je     0x50ce6a
50ce1b:	8d 45 f4             	lea    -0xc(%ebp),%eax
50ce1e:	50                   	push   %eax
50ce1f:	56                   	push   %esi
50ce20:	e8 6b 00 00 00       	call   0x50ce90
50ce25:	83 c4 08             	add    $0x8,%esp
50ce28:	85 c0                	test   %eax,%eax
50ce2a:	75 48                	jne    0x50ce74
50ce2c:	50                   	push   %eax
50ce2d:	39 45 f4             	cmp    %eax,-0xc(%ebp)
50ce30:	75 20                	jne    0x50ce52
50ce32:	8b 06                	mov    (%esi),%eax
50ce34:	ff b6 dc 00 00 00    	push   0xdc(%esi)
50ce3a:	50                   	push   %eax
50ce3b:	8b 40 1c             	mov    0x1c(%eax),%eax
50ce3e:	ff d0                	call   *%eax
50ce40:	83 c4 0c             	add    $0xc,%esp
50ce43:	5e                   	pop    %esi
50ce44:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50ce47:	33 cd                	xor    %ebp,%ecx
50ce49:	e8 8c 46 0d 00       	call   0x5e14da
50ce4e:	8b e5                	mov    %ebp,%esp
50ce50:	5d                   	pop    %ebp
50ce51:	c3                   	ret
50ce52:	56                   	push   %esi
50ce53:	e8 28 62 02 00       	call   0x533080
50ce58:	83 c4 08             	add    $0x8,%esp
50ce5b:	5e                   	pop    %esi
50ce5c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50ce5f:	33 cd                	xor    %ebp,%ecx
50ce61:	e8 74 46 0d 00       	call   0x5e14da
50ce66:	8b e5                	mov    %ebp,%esp
50ce68:	5d                   	pop    %ebp
50ce69:	c3                   	ret
50ce6a:	80 7e 05 05          	cmpb   $0x5,0x5(%esi)
50ce6e:	75 04                	jne    0x50ce74
50ce70:	c6 46 05 00          	movb   $0x0,0x5(%esi)
50ce74:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50ce77:	33 cd                	xor    %ebp,%ecx
50ce79:	5e                   	pop    %esi
50ce7a:	e8 5b 46 0d 00       	call   0x5e14da
50ce7f:	8b e5                	mov    %ebp,%esp
50ce81:	5d                   	pop    %ebp
50ce82:	c3                   	ret
50ce83:	cc                   	int3
50ce84:	cc                   	int3
50ce85:	cc                   	int3
50ce86:	cc                   	int3
50ce87:	cc                   	int3
50ce88:	cc                   	int3
50ce89:	cc                   	int3
50ce8a:	cc                   	int3
50ce8b:	cc                   	int3
50ce8c:	cc                   	int3
50ce8d:	cc                   	int3
50ce8e:	cc                   	int3
50ce8f:	cc                   	int3
50ce90:	55                   	push   %ebp
50ce91:	8b ec                	mov    %esp,%ebp
50ce93:	83 ec 0c             	sub    $0xc,%esp
50ce96:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50ce9b:	33 c5                	xor    %ebp,%eax
50ce9d:	89 45 fc             	mov    %eax,-0x4(%ebp)
50cea0:	53                   	push   %ebx
50cea1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
50cea4:	57                   	push   %edi
50cea5:	8b 7d 08             	mov    0x8(%ebp),%edi
50cea8:	8b 87 d8 00 00 00    	mov    0xd8(%edi),%eax
50ceae:	85 c0                	test   %eax,%eax
50ceb0:	74 10                	je     0x50cec2
50ceb2:	66 83 78 28 00       	cmpw   $0x0,0x28(%eax)
50ceb7:	7c 09                	jl     0x50cec2
50ceb9:	8b 40 48             	mov    0x48(%eax),%eax
50cebc:	85 c0                	test   %eax,%eax
50cebe:	75 4b                	jne    0x50cf0b
50cec0:	eb 02                	jmp    0x50cec4
50cec2:	33 c0                	xor    %eax,%eax
50cec4:	8b 4f 3c             	mov    0x3c(%edi),%ecx
50cec7:	83 39 00             	cmpl   $0x0,(%ecx)
50ceca:	74 3f                	je     0x50cf0b
50cecc:	0f 57 c0             	xorps  %xmm0,%xmm0
50cecf:	8d 55 f4             	lea    -0xc(%ebp),%edx
50ced2:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
50ced7:	8b 01                	mov    (%ecx),%eax
50ced9:	52                   	push   %edx
50ceda:	51                   	push   %ecx
50cedb:	8b 40 18             	mov    0x18(%eax),%eax
50cede:	ff d0                	call   *%eax
50cee0:	83 c4 08             	add    $0x8,%esp
50cee3:	85 c0                	test   %eax,%eax
50cee5:	75 36                	jne    0x50cf1d
50cee7:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
50ceed:	99                   	cltd
50ceee:	56                   	push   %esi
50ceef:	8b f0                	mov    %eax,%esi
50cef1:	8b c2                	mov    %edx,%eax
50cef3:	8b ce                	mov    %esi,%ecx
50cef5:	03 4d f4             	add    -0xc(%ebp),%ecx
50cef8:	52                   	push   %edx
50cef9:	13 45 f8             	adc    -0x8(%ebp),%eax
50cefc:	83 e9 01             	sub    $0x1,%ecx
50ceff:	56                   	push   %esi
50cf00:	83 d8 00             	sbb    $0x0,%eax
50cf03:	50                   	push   %eax
50cf04:	51                   	push   %ecx
50cf05:	e8 36 4c 0d 00       	call   0x5e1b40
50cf0a:	5e                   	pop    %esi
50cf0b:	3b 87 9c 00 00 00    	cmp    0x9c(%edi),%eax
50cf11:	76 06                	jbe    0x50cf19
50cf13:	89 87 9c 00 00 00    	mov    %eax,0x9c(%edi)
50cf19:	89 03                	mov    %eax,(%ebx)
50cf1b:	33 c0                	xor    %eax,%eax
50cf1d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50cf20:	5f                   	pop    %edi
50cf21:	33 cd                	xor    %ebp,%ecx
50cf23:	5b                   	pop    %ebx
50cf24:	e8 b1 45 0d 00       	call   0x5e14da
50cf29:	8b e5                	mov    %ebp,%esp
50cf2b:	5d                   	pop    %ebp
50cf2c:	c3                   	ret
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)