45cd8e:	50                   	push   %eax
45cd8f:	8d 45 f4             	lea    -0xc(%ebp),%eax
45cd92:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45cd98:	8b d1                	mov    %ecx,%edx
45cd9a:	89 55 f0             	mov    %edx,-0x10(%ebp)
45cd9d:	8b 4a 20             	mov    0x20(%edx),%ecx
45cda0:	85 c9                	test   %ecx,%ecx
45cda2:	74 24                	je     0x45cdc8
45cda4:	8b 02                	mov    (%edx),%eax
45cda6:	6a 01                	push   $0x1
45cda8:	6a 00                	push   $0x0
45cdaa:	51                   	push   %ecx
45cdab:	8b 70 14             	mov    0x14(%eax),%esi
45cdae:	8b ce                	mov    %esi,%ecx
45cdb0:	ff 72 1c             	push   0x1c(%edx)
45cdb3:	c7 42 20 00 00 00 00 	movl   $0x0,0x20(%edx)
45cdba:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45cdc0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45cdc3:	ff d6                	call   *%esi
45cdc5:	8b 55 f0             	mov    -0x10(%ebp),%edx
45cdc8:	8b 75 0c             	mov    0xc(%ebp),%esi
45cdcb:	8d 5a 10             	lea    0x10(%edx),%ebx
45cdce:	66 90                	xchg   %ax,%ax
45cdd0:	8b 42 18             	mov    0x18(%edx),%eax
45cdd3:	8b fe                	mov    %esi,%edi
45cdd5:	89 45 ec             	mov    %eax,-0x14(%ebp)
45cdd8:	8b 48 14             	mov    0x14(%eax),%ecx
45cddb:	8b 40 08             	mov    0x8(%eax),%eax
45cdde:	2b c1                	sub    %ecx,%eax
45cde0:	3b c6                	cmp    %esi,%eax
45cde2:	0f 42 f8             	cmovb  %eax,%edi
45cde5:	8b 45 ec             	mov    -0x14(%ebp),%eax
45cde8:	8b 40 0c             	mov    0xc(%eax),%eax
45cdeb:	03 c1                	add    %ecx,%eax
45cded:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cdf0:	3b c1                	cmp    %ecx,%eax
45cdf2:	74 11                	je     0x45ce05
45cdf4:	57                   	push   %edi
45cdf5:	51                   	push   %ecx
45cdf6:	50                   	push   %eax
45cdf7:	e8 24 e8 00 00       	call   0x46b620
45cdfc:	8b 55 f0             	mov    -0x10(%ebp),%edx
45cdff:	83 c4 0c             	add    $0xc,%esp
45ce02:	8b 4d 08             	mov    0x8(%ebp),%ecx
45ce05:	8b 45 ec             	mov    -0x14(%ebp),%eax
45ce08:	01 78 14             	add    %edi,0x14(%eax)
45ce0b:	3b fe                	cmp    %esi,%edi
45ce0d:	0f 83 8f 00 00 00    	jae    0x45cea2
45ce13:	03 cf                	add    %edi,%ecx
45ce15:	2b f7                	sub    %edi,%esi
45ce17:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
45ce1b:	89 4d 08             	mov    %ecx,0x8(%ebp)
45ce1e:	89 75 0c             	mov    %esi,0xc(%ebp)
45ce21:	74 1c                	je     0x45ce3f
45ce23:	8b 03                	mov    (%ebx),%eax
45ce25:	3d 00 40 00 00       	cmp    $0x4000,%eax
45ce2a:	73 13                	jae    0x45ce3f
45ce2c:	0f 1f 40 00          	nopl   0x0(%eax)
45ce30:	03 c0                	add    %eax,%eax
45ce32:	89 03                	mov    %eax,(%ebx)
45ce34:	3b c6                	cmp    %esi,%eax
45ce36:	73 07                	jae    0x45ce3f
45ce38:	3d 00 40 00 00       	cmp    $0x4000,%eax
45ce3d:	72 f1                	jb     0x45ce30
45ce3f:	6a 18                	push   $0x18
45ce41:	e8 92 cb 00 00       	call   0x4699d8
45ce46:	8b f8                	mov    %eax,%edi
45ce48:	83 c4 04             	add    $0x4,%esp
45ce4b:	89 7d e8             	mov    %edi,-0x18(%ebp)
45ce4e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
45ce55:	8d 4d 0c             	lea    0xc(%ebp),%ecx
45ce58:	39 33                	cmp    %esi,(%ebx)
45ce5a:	0f 43 cb             	cmovae %ebx,%ecx
45ce5d:	8b 09                	mov    (%ecx),%ecx
45ce5f:	89 4f 08             	mov    %ecx,0x8(%edi)
45ce62:	85 c9                	test   %ecx,%ecx
45ce64:	75 04                	jne    0x45ce6a
45ce66:	33 c0                	xor    %eax,%eax
45ce68:	eb 05                	jmp    0x45ce6f
45ce6a:	e8 f1 f1 ff ff       	call   0x45c060
45ce6f:	8b 55 f0             	mov    -0x10(%ebp),%edx
45ce72:	89 47 0c             	mov    %eax,0xc(%edi)
45ce75:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
45ce7c:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
45ce83:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
45ce89:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
45ce90:	8b 42 18             	mov    0x18(%edx),%eax
45ce93:	89 38                	mov    %edi,(%eax)
45ce95:	8b 42 18             	mov    0x18(%edx),%eax
45ce98:	8b 00                	mov    (%eax),%eax
45ce9a:	89 42 18             	mov    %eax,0x18(%edx)
45ce9d:	e9 2e ff ff ff       	jmp    0x45cdd0
45cea2:	33 c0                	xor    %eax,%eax
45cea4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45cea7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45ceae:	59                   	pop    %ecx
45ceaf:	5f                   	pop    %edi
45ceb0:	5e                   	pop    %esi
45ceb1:	5b                   	pop    %ebx
45ceb2:	8b e5                	mov    %ebp,%esp
45ceb4:	5d                   	pop    %ebp
45ceb5:	c2 10 00             	ret    $0x10
45ceb8:	cc                   	int3
45ceb9:	cc                   	int3
45ceba:	cc                   	int3
45cebb:	cc                   	int3
45cebc:	cc                   	int3
45cebd:	cc                   	int3
45cebe:	cc                   	int3
45cebf:	cc                   	int3
45cec0:	53                   	push   %ebx
45cec1:	8b d9                	mov    %ecx,%ebx
45cec3:	8b 53 14             	mov    0x14(%ebx),%edx
45cec6:	3b 53 18             	cmp    0x18(%ebx),%edx
45cec9:	74 3d                	je     0x45cf08
45cecb:	56                   	push   %esi
45cecc:	8b f2                	mov    %edx,%esi
45cece:	57                   	push   %edi
45cecf:	90                   	nop
45ced0:	8b 46 10             	mov    0x10(%esi),%eax
45ced3:	8b d6                	mov    %esi,%edx
45ced5:	3b 46 08             	cmp    0x8(%esi),%eax
45ced8:	75 2c                	jne    0x45cf06
45ceda:	8b 06                	mov    (%esi),%eax
45cedc:	89 43 14             	mov    %eax,0x14(%ebx)
45cedf:	32 c0                	xor    %al,%al
45cee1:	8b 56 0c             	mov    0xc(%esi),%edx
45cee4:	8b fa                	mov    %edx,%edi
45cee6:	8b 4e 08             	mov    0x8(%esi),%ecx
45cee9:	f3 aa                	rep stos %al,%es:(%edi)
45ceeb:	52                   	push   %edx
45ceec:	e8 91 c7 01 00       	call   0x479682
45cef1:	6a 18                	push   $0x18
45cef3:	56                   	push   %esi
45cef4:	e8 0f cb 00 00       	call   0x469a08
45cef9:	8b 53 14             	mov    0x14(%ebx),%edx
45cefc:	83 c4 0c             	add    $0xc,%esp
45ceff:	8b f2                	mov    %edx,%esi
45cf01:	3b 53 18             	cmp    0x18(%ebx),%edx
45cf04:	75 ca                	jne    0x45ced0
45cf06:	5f                   	pop    %edi
45cf07:	5e                   	pop    %esi
45cf08:	8b 42 14             	mov    0x14(%edx),%eax
45cf0b:	5b                   	pop    %ebx
45cf0c:	2b 42 10             	sub    0x10(%edx),%eax
45cf0f:	75 06                	jne    0x45cf17
45cf11:	89 42 14             	mov    %eax,0x14(%edx)
45cf14:	89 42 10             	mov    %eax,0x10(%edx)
45cf17:	c3                   	ret
45cf18:	cc                   	int3
45cf19:	cc                   	int3
45cf1a:	cc                   	int3
45cf1b:	cc                   	int3
45cf1c:	cc                   	int3
45cf1d:	cc                   	int3
45cf1e:	cc                   	int3
45cf1f:	cc                   	int3
45cf20:	8b d1                	mov    %ecx,%edx
45cf22:	56                   	push   %esi
45cf23:	8b 72 14             	mov    0x14(%edx),%esi
45cf26:	8b 4e 10             	mov    0x10(%esi),%ecx
45cf29:	39 4e 14             	cmp    %ecx,0x14(%esi)
45cf2c:	74 2a                	je     0x45cf58
45cf2e:	8b 46 0c             	mov    0xc(%esi),%eax
45cf31:	8a 0c 01             	mov    (%ecx,%eax,1),%cl
45cf34:	8b 44 24 08          	mov    0x8(%esp),%eax
45cf38:	88 08                	mov    %cl,(%eax)
45cf3a:	ff 46 10             	incl   0x10(%esi)
45cf3d:	8b 4a 14             	mov    0x14(%edx),%ecx
45cf40:	8b 41 10             	mov    0x10(%ecx),%eax
45cf43:	3b 41 08             	cmp    0x8(%ecx),%eax
45cf46:	75 07                	jne    0x45cf4f
45cf48:	8b ca                	mov    %edx,%ecx
45cf4a:	e8 71 ff ff ff       	call   0x45cec0
45cf4f:	b8 01 00 00 00       	mov    $0x1,%eax
45cf54:	5e                   	pop    %esi
45cf55:	c2 04 00             	ret    $0x4
45cf58:	83 7a 20 00          	cmpl   $0x0,0x20(%edx)
45cf5c:	76 1a                	jbe    0x45cf78
45cf5e:	8b 42 1c             	mov    0x1c(%edx),%eax
45cf61:	5e                   	pop    %esi
45cf62:	8a 08                	mov    (%eax),%cl
45cf64:	8b 44 24 04          	mov    0x4(%esp),%eax
45cf68:	88 08                	mov    %cl,(%eax)
45cf6a:	b8 01 00 00 00       	mov    $0x1,%eax
45cf6f:	ff 42 1c             	incl   0x1c(%edx)
45cf72:	ff 4a 20             	decl   0x20(%edx)
45cf75:	c2 04 00             	ret    $0x4
45cf78:	33 c0                	xor    %eax,%eax
45cf7a:	5e                   	pop    %esi
45cf7b:	c2 04 00             	ret    $0x4
45cf7e:	cc                   	int3
45cf7f:	cc                   	int3
45cf80:	83 ec 34             	sub    $0x34,%esp
45cf83:	a1 14 40 4c 00       	mov    0x4c4014,%eax
45cf88:	33 c4                	xor    %esp,%eax
45cf8a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
45cf8e:	8b 44 24 38          	mov    0x38(%esp),%eax
45cf92:	0f 57 c0             	xorps  %xmm0,%xmm0
45cf95:	56                   	push   %esi
45cf96:	57                   	push   %edi
45cf97:	8b f9                	mov    %ecx,%edi
45cf99:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45cf9d:	8b 4c 24 44          	mov    0x44(%esp),%ecx
45cfa1:	8d 44 24 08          	lea    0x8(%esp),%eax
45cfa5:	6a 01                	push   $0x1
45cfa7:	68 40 4e 4c 00       	push   $0x4c4e40
45cfac:	8b 37                	mov    (%edi),%esi
45cfae:	50                   	push   %eax
45cfaf:	8d 44 24 1c          	lea    0x1c(%esp),%eax
45cfb3:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
45cfb7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
45cfbb:	8b 76 7c             	mov    0x7c(%esi),%esi
45cfbe:	8b ce                	mov    %esi,%ecx
45cfc0:	50                   	push   %eax
45cfc1:	c7 44 24 20 2c 61 4b 	movl   $0x4b612c,0x20(%esp)
45cfc8:	00
45cfc9:	c7 44 24 24 68 60 4b 	movl   $0x4b6068,0x24(%esp)
45cfd0:	00
45cfd1:	66 0f 13 44 24 38    	movlpd %xmm0,0x38(%esp)
45cfd7:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
45cfde:	00
45cfdf:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45cfe5:	8b cf                	mov    %edi,%ecx
45cfe7:	ff d6                	call   *%esi
45cfe9:	8b 4c 24 34          	mov    0x34(%esp),%ecx
45cfed:	8b 44 24 08          	mov    0x8(%esp),%eax
45cff1:	5f                   	pop    %edi
45cff2:	5e                   	pop    %esi
45cff3:	33 cc                	xor    %esp,%ecx
45cff5:	e8 d0 c9 00 00       	call   0x4699ca
45cffa:	83 c4 34             	add    $0x34,%esp
45cffd:	c2 08 00             	ret    $0x8
45d000:	8b 41 14             	mov    0x14(%ecx),%eax
45d003:	8b 50 10             	mov    0x10(%eax),%edx
45d006:	39 50 14             	cmp    %edx,0x14(%eax)
45d009:	74 14                	je     0x45d01f
45d00b:	8b 40 0c             	mov    0xc(%eax),%eax
45d00e:	8a 0c 02             	mov    (%edx,%eax,1),%cl
45d011:	8b 44 24 04          	mov    0x4(%esp),%eax
45d015:	88 08                	mov    %cl,(%eax)
45d017:	b8 01 00 00 00       	mov    $0x1,%eax
45d01c:	c2 04 00             	ret    $0x4
45d01f:	83 79 20 00          	cmpl   $0x0,0x20(%ecx)
45d023:	76 13                	jbe    0x45d038
45d025:	8b 41 1c             	mov    0x1c(%ecx),%eax
45d028:	8a 08                	mov    (%eax),%cl
45d02a:	8b 44 24 04          	mov    0x4(%esp),%eax
45d02e:	88 08                	mov    %cl,(%eax)
45d030:	b8 01 00 00 00       	mov    $0x1,%eax
45d035:	c2 04 00             	ret    $0x4
45d038:	33 c0                	xor    %eax,%eax
45d03a:	c2 04 00             	ret    $0x4
45d03d:	cc                   	int3
45d03e:	cc                   	int3
45d03f:	cc                   	int3
45d040:	83 ec 24             	sub    $0x24,%esp
45d043:	a1 14 40 4c 00       	mov    0x4c4014,%eax
45d048:	33 c4                	xor    %esp,%eax
45d04a:	89 44 24 20          	mov    %eax,0x20(%esp)
45d04e:	8b 44 24 28          	mov    0x28(%esp),%eax
45d052:	0f 57 c0             	xorps  %xmm0,%xmm0
45d055:	51                   	push   %ecx
45d056:	89 44 24 10          	mov    %eax,0x10(%esp)
45d05a:	8b 44 24 30          	mov    0x30(%esp),%eax
45d05e:	6a 00                	push   $0x0
45d060:	50                   	push   %eax
45d061:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45d065:	8d 44 24 0c          	lea    0xc(%esp),%eax
45d069:	50                   	push   %eax
45d06a:	c7 44 24 10 2c 61 4b 	movl   $0x4b612c,0x10(%esp)
45d071:	00
45d072:	c7 44 24 14 68 60 4b 	movl   $0x4b6068,0x14(%esp)
45d079:	00
45d07a:	66 0f 13 44 24 28    	movlpd %xmm0,0x28(%esp)
45d080:	e8 0b ef fd ff       	call   0x43bf90
45d085:	8b 4c 24 20          	mov    0x20(%esp),%ecx
45d089:	33 cc                	xor    %esp,%ecx
45d08b:	e8 3a c9 00 00       	call   0x4699ca
45d090:	83 c4 24             	add    $0x24,%esp
45d093:	c2 08 00             	ret    $0x8
45d096:	cc                   	int3
45d097:	cc                   	int3
45d098:	cc                   	int3
45d099:	cc                   	int3
45d09a:	cc                   	int3
45d09b:	cc                   	int3
45d09c:	cc                   	int3
45d09d:	cc                   	int3
45d09e:	cc                   	int3
45d09f:	cc                   	int3
45d0a0:	83 ec 48             	sub    $0x48,%esp
45d0a3:	a1 14 40 4c 00       	mov    0x4c4014,%eax
45d0a8:	33 c4                	xor    %esp,%eax
45d0aa:	89 44 24 44          	mov    %eax,0x44(%esp)
45d0ae:	80 7c 24 58 00       	cmpb   $0x0,0x58(%esp)
45d0b3:	8b 54 24 4c          	mov    0x4c(%esp),%edx
45d0b7:	53                   	push   %ebx
45d0b8:	8b 5c 24 58          	mov    0x58(%esp),%ebx
45d0bc:	55                   	push   %ebp
45d0bd:	56                   	push   %esi
45d0be:	8b 74 24 5c          	mov    0x5c(%esp),%esi
45d0c2:	8b e9                	mov    %ecx,%ebp
45d0c4:	57                   	push   %edi
45d0c5:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
45d0c9:	89 54 24 10          	mov    %edx,0x10(%esp)
45d0cd:	89 74 24 20          	mov    %esi,0x20(%esp)
45d0d1:	89 5c 24 14          	mov    %ebx,0x14(%esp)
45d0d5:	0f 84 f3 00 00 00    	je     0x45d1ce
45d0db:	8b 1e                	mov    (%esi),%ebx
45d0dd:	8b c3                	mov    %ebx,%eax
45d0df:	8b 76 04             	mov    0x4(%esi),%esi
45d0e2:	0b c6                	or     %esi,%eax
45d0e4:	8b 6d 14             	mov    0x14(%ebp),%ebp
45d0e7:	89 74 24 18          	mov    %esi,0x18(%esp)
45d0eb:	74 5d                	je     0x45d14a
45d0ed:	eb 05                	jmp    0x45d0f4
45d0ef:	90                   	nop
45d0f0:	8b 54 24 10          	mov    0x10(%esp),%edx
45d0f4:	85 ed                	test   %ebp,%ebp
45d0f6:	74 52                	je     0x45d14a
45d0f8:	8b 7d 14             	mov    0x14(%ebp),%edi
45d0fb:	8b 4d 10             	mov    0x10(%ebp),%ecx
45d0fe:	2b f9                	sub    %ecx,%edi
45d100:	85 f6                	test   %esi,%esi
45d102:	77 08                	ja     0x45d10c
45d104:	72 04                	jb     0x45d10a
45d106:	3b df                	cmp    %edi,%ebx
45d108:	73 02                	jae    0x45d10c
45d10a:	8b fb                	mov    %ebx,%edi
45d10c:	8b 45 0c             	mov    0xc(%ebp),%eax
45d10f:	8b 32                	mov    (%edx),%esi
45d111:	03 c1                	add    %ecx,%eax
45d113:	6a 01                	push   $0x1
45d115:	6a 00                	push   $0x0
45d117:	57                   	push   %edi
45d118:	8b b6 8c 00 00 00    	mov    0x8c(%esi),%esi
45d11e:	8b ce                	mov    %esi,%ecx
45d120:	50                   	push   %eax
45d121:	ff 74 24 24          	push   0x24(%esp)
45d125:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45d12b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
45d12f:	ff d6                	call   *%esi
45d131:	01 7d 10             	add    %edi,0x10(%ebp)
45d134:	2b df                	sub    %edi,%ebx
45d136:	8b 74 24 18          	mov    0x18(%esp),%esi
45d13a:	8b c3                	mov    %ebx,%eax
45d13c:	8b 6d 00             	mov    0x0(%ebp),%ebp
45d13f:	83 de 00             	sbb    $0x0,%esi
45d142:	0b c6                	or     %esi,%eax