47ff61:	53                   	push   %ebx
47ff62:	33 db                	xor    %ebx,%ebx
47ff64:	39 5f 04             	cmp    %ebx,0x4(%edi)
47ff67:	7f 06                	jg     0x47ff6f
47ff69:	7c 16                	jl     0x47ff81
47ff6b:	39 1f                	cmp    %ebx,(%edi)
47ff6d:	72 12                	jb     0x47ff81
47ff6f:	6a 07                	push   $0x7
47ff71:	58                   	pop    %eax
47ff72:	39 47 04             	cmp    %eax,0x4(%edi)
47ff75:	7c 1b                	jl     0x47ff92
47ff77:	7f 08                	jg     0x47ff81
47ff79:	81 3f ff 2a 58 93    	cmpl   $0x93582aff,(%edi)
47ff7f:	76 11                	jbe    0x47ff92
47ff81:	e8 af 9f ff ff       	call   0x479f35
47ff86:	6a 16                	push   $0x16
47ff88:	5e                   	pop    %esi
47ff89:	89 30                	mov    %esi,(%eax)
47ff8b:	8b c6                	mov    %esi,%eax
47ff8d:	5b                   	pop    %ebx
47ff8e:	5f                   	pop    %edi
47ff8f:	5e                   	pop    %esi
47ff90:	c9                   	leave
47ff91:	c3                   	ret
47ff92:	e8 0e af 00 00       	call   0x48aea5
47ff97:	8d 45 f8             	lea    -0x8(%ebp),%eax
47ff9a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47ff9d:	50                   	push   %eax
47ff9e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
47ffa1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47ffa4:	e8 7a a5 00 00       	call   0x48a523
47ffa9:	59                   	pop    %ecx
47ffaa:	85 c0                	test   %eax,%eax
47ffac:	0f 85 ed 01 00 00    	jne    0x48019f
47ffb2:	8d 45 f4             	lea    -0xc(%ebp),%eax
47ffb5:	50                   	push   %eax
47ffb6:	e8 94 a5 00 00       	call   0x48a54f
47ffbb:	59                   	pop    %ecx
47ffbc:	85 c0                	test   %eax,%eax
47ffbe:	0f 85 db 01 00 00    	jne    0x48019f
47ffc4:	8d 45 fc             	lea    -0x4(%ebp),%eax
47ffc7:	50                   	push   %eax
47ffc8:	e8 ae a5 00 00       	call   0x48a57b
47ffcd:	59                   	pop    %ecx
47ffce:	85 c0                	test   %eax,%eax
47ffd0:	0f 85 c9 01 00 00    	jne    0x48019f
47ffd6:	8b 0f                	mov    (%edi),%ecx
47ffd8:	8b d1                	mov    %ecx,%edx
47ffda:	8b 5f 04             	mov    0x4(%edi),%ebx
47ffdd:	81 c2 7f 0b fc ff    	add    $0xfffc0b7f,%edx
47ffe3:	8b c3                	mov    %ebx,%eax
47ffe5:	83 d0 ff             	adc    $0xffffffff,%eax
47ffe8:	83 f8 07             	cmp    $0x7,%eax
47ffeb:	77 6e                	ja     0x48005b
47ffed:	72 08                	jb     0x47fff7
47ffef:	81 fa fd 41 50 93    	cmp    $0x935041fd,%edx
47fff5:	77 64                	ja     0x48005b
47fff7:	8b 45 fc             	mov    -0x4(%ebp),%eax
47fffa:	99                   	cltd
47fffb:	2b c8                	sub    %eax,%ecx
47fffd:	8d 45 ec             	lea    -0x14(%ebp),%eax
480000:	50                   	push   %eax
480001:	1b da                	sbb    %edx,%ebx
480003:	89 4d ec             	mov    %ecx,-0x14(%ebp)
480006:	56                   	push   %esi
480007:	89 5d f0             	mov    %ebx,-0x10(%ebp)
48000a:	e8 97 1d 00 00       	call   0x481da6
48000f:	59                   	pop    %ecx
480010:	59                   	pop    %ecx
480011:	85 c0                	test   %eax,%eax
480013:	0f 85 74 ff ff ff    	jne    0x47ff8d
480019:	39 45 f8             	cmp    %eax,-0x8(%ebp)
48001c:	0f 84 76 01 00 00    	je     0x480198
480022:	56                   	push   %esi
480023:	e8 da ae 00 00       	call   0x48af02
480028:	59                   	pop    %ecx
480029:	85 c0                	test   %eax,%eax
48002b:	0f 84 67 01 00 00    	je     0x480198
480031:	8b 45 f4             	mov    -0xc(%ebp),%eax
480034:	99                   	cltd
480035:	29 45 ec             	sub    %eax,-0x14(%ebp)
480038:	8d 45 ec             	lea    -0x14(%ebp),%eax
48003b:	50                   	push   %eax
48003c:	19 55 f0             	sbb    %edx,-0x10(%ebp)
48003f:	56                   	push   %esi
480040:	e8 61 1d 00 00       	call   0x481da6
480045:	59                   	pop    %ecx
480046:	59                   	pop    %ecx
480047:	85 c0                	test   %eax,%eax
480049:	0f 85 3e ff ff ff    	jne    0x47ff8d
48004f:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
480056:	e9 3d 01 00 00       	jmp    0x480198
48005b:	57                   	push   %edi
48005c:	56                   	push   %esi
48005d:	e8 44 1d 00 00       	call   0x481da6
480062:	59                   	pop    %ecx
480063:	59                   	pop    %ecx
480064:	85 c0                	test   %eax,%eax
480066:	0f 85 21 ff ff ff    	jne    0x47ff8d
48006c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
480070:	8b 06                	mov    (%esi),%eax
480072:	99                   	cltd
480073:	8b f8                	mov    %eax,%edi
480075:	8b da                	mov    %edx,%ebx
480077:	74 1a                	je     0x480093
480079:	56                   	push   %esi
48007a:	e8 83 ae 00 00       	call   0x48af02
48007f:	59                   	pop    %ecx
480080:	85 c0                	test   %eax,%eax
480082:	74 0f                	je     0x480093
480084:	8b 45 fc             	mov    -0x4(%ebp),%eax
480087:	03 45 f4             	add    -0xc(%ebp),%eax
48008a:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
480091:	eb 03                	jmp    0x480096
480093:	8b 45 fc             	mov    -0x4(%ebp),%eax
480096:	99                   	cltd
480097:	2b f8                	sub    %eax,%edi
480099:	6a 00                	push   $0x0
48009b:	6a 3c                	push   $0x3c
48009d:	1b da                	sbb    %edx,%ebx
48009f:	53                   	push   %ebx
4800a0:	57                   	push   %edi
4800a1:	e8 9a 5a 01 00       	call   0x495b40
4800a6:	89 06                	mov    %eax,(%esi)
4800a8:	85 c0                	test   %eax,%eax
4800aa:	79 0b                	jns    0x4800b7
4800ac:	83 c0 3c             	add    $0x3c,%eax
4800af:	83 c7 c4             	add    $0xffffffc4,%edi
4800b2:	89 06                	mov    %eax,(%esi)
4800b4:	83 d3 ff             	adc    $0xffffffff,%ebx
4800b7:	6a 00                	push   $0x0
4800b9:	6a 3c                	push   $0x3c
4800bb:	53                   	push   %ebx
4800bc:	57                   	push   %edi
4800bd:	e8 ce 59 01 00       	call   0x495a90
4800c2:	8b f8                	mov    %eax,%edi
4800c4:	8b da                	mov    %edx,%ebx
4800c6:	8b 46 04             	mov    0x4(%esi),%eax
4800c9:	99                   	cltd
4800ca:	03 f8                	add    %eax,%edi
4800cc:	6a 00                	push   $0x0
4800ce:	6a 3c                	push   $0x3c
4800d0:	13 da                	adc    %edx,%ebx
4800d2:	53                   	push   %ebx
4800d3:	57                   	push   %edi
4800d4:	e8 67 5a 01 00       	call   0x495b40
4800d9:	89 46 04             	mov    %eax,0x4(%esi)
4800dc:	85 c0                	test   %eax,%eax
4800de:	79 0c                	jns    0x4800ec
4800e0:	83 c0 3c             	add    $0x3c,%eax
4800e3:	83 c7 c4             	add    $0xffffffc4,%edi
4800e6:	89 46 04             	mov    %eax,0x4(%esi)
4800e9:	83 d3 ff             	adc    $0xffffffff,%ebx
4800ec:	6a 00                	push   $0x0
4800ee:	6a 3c                	push   $0x3c
4800f0:	53                   	push   %ebx
4800f1:	57                   	push   %edi
4800f2:	e8 99 59 01 00       	call   0x495a90
4800f7:	8b f8                	mov    %eax,%edi
4800f9:	8b da                	mov    %edx,%ebx
4800fb:	8b 46 08             	mov    0x8(%esi),%eax
4800fe:	99                   	cltd
4800ff:	03 f8                	add    %eax,%edi
480101:	6a 00                	push   $0x0
480103:	6a 18                	push   $0x18
480105:	13 da                	adc    %edx,%ebx
480107:	53                   	push   %ebx
480108:	57                   	push   %edi
480109:	e8 32 5a 01 00       	call   0x495b40
48010e:	89 46 08             	mov    %eax,0x8(%esi)
480111:	85 c0                	test   %eax,%eax
480113:	79 0c                	jns    0x480121
480115:	83 c0 18             	add    $0x18,%eax
480118:	83 c7 e8             	add    $0xffffffe8,%edi
48011b:	89 46 08             	mov    %eax,0x8(%esi)
48011e:	83 d3 ff             	adc    $0xffffffff,%ebx
480121:	6a 00                	push   $0x0
480123:	6a 18                	push   $0x18
480125:	53                   	push   %ebx
480126:	57                   	push   %edi
480127:	e8 64 59 01 00       	call   0x495a90
48012c:	8b c8                	mov    %eax,%ecx
48012e:	85 d2                	test   %edx,%edx
480130:	7c 26                	jl     0x480158
480132:	7f 04                	jg     0x480138
480134:	85 c9                	test   %ecx,%ecx
480136:	74 16                	je     0x48014e
480138:	8b 46 18             	mov    0x18(%esi),%eax
48013b:	03 c1                	add    %ecx,%eax
48013d:	01 4e 0c             	add    %ecx,0xc(%esi)
480140:	6a 07                	push   $0x7
480142:	99                   	cltd
480143:	5b                   	pop    %ebx
480144:	f7 fb                	idiv   %ebx
480146:	01 4e 1c             	add    %ecx,0x1c(%esi)
480149:	89 56 18             	mov    %edx,0x18(%esi)
48014c:	eb 4a                	jmp    0x480198
48014e:	85 d2                	test   %edx,%edx
480150:	7f 46                	jg     0x480198
480152:	7c 04                	jl     0x480158
480154:	85 c9                	test   %ecx,%ecx
480156:	73 40                	jae    0x480198
480158:	8b 46 18             	mov    0x18(%esi),%eax
48015b:	83 c0 07             	add    $0x7,%eax
48015e:	03 c1                	add    %ecx,%eax
480160:	99                   	cltd
480161:	6a 07                	push   $0x7
480163:	5b                   	pop    %ebx
480164:	f7 fb                	idiv   %ebx
480166:	8b 46 0c             	mov    0xc(%esi),%eax
480169:	89 56 18             	mov    %edx,0x18(%esi)
48016c:	03 c1                	add    %ecx,%eax
48016e:	8b 56 1c             	mov    0x1c(%esi),%edx
480171:	03 d1                	add    %ecx,%edx
480173:	89 46 0c             	mov    %eax,0xc(%esi)
480176:	85 c0                	test   %eax,%eax
480178:	7f 1b                	jg     0x480195
48017a:	83 c0 1f             	add    $0x1f,%eax
48017d:	c7 46 10 0b 00 00 00 	movl   $0xb,0x10(%esi)
480184:	ff 4e 14             	decl   0x14(%esi)
480187:	89 46 0c             	mov    %eax,0xc(%esi)
48018a:	8d 82 6d 01 00 00    	lea    0x16d(%edx),%eax
480190:	89 46 1c             	mov    %eax,0x1c(%esi)
480193:	eb 03                	jmp    0x480198
480195:	89 56 1c             	mov    %edx,0x1c(%esi)
480198:	33 c0                	xor    %eax,%eax
48019a:	e9 ee fd ff ff       	jmp    0x47ff8d
48019f:	53                   	push   %ebx
4801a0:	53                   	push   %ebx
4801a1:	53                   	push   %ebx
4801a2:	53                   	push   %ebx
4801a3:	53                   	push   %ebx
4801a4:	e8 a5 94 ff ff       	call   0x47964e
4801a9:	cc                   	int3
4801aa:	8b ff                	mov    %edi,%edi
4801ac:	55                   	push   %ebp
4801ad:	8b ec                	mov    %esp,%ebp
4801af:	5d                   	pop    %ebp
4801b0:	e9 64 fd ff ff       	jmp    0x47ff19
4801b5:	6a 10                	push   $0x10
4801b7:	68 08 17 4c 00       	push   $0x4c1708
4801bc:	e8 7f a5 fe ff       	call   0x46a740
4801c1:	8b 75 08             	mov    0x8(%ebp),%esi
4801c4:	85 f6                	test   %esi,%esi
4801c6:	75 14                	jne    0x4801dc
4801c8:	e8 68 9d ff ff       	call   0x479f35
4801cd:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4801d3:	e8 49 94 ff ff       	call   0x479621
4801d8:	33 c0                	xor    %eax,%eax
4801da:	eb 65                	jmp    0x480241
4801dc:	8b 7d 0c             	mov    0xc(%ebp),%edi
4801df:	85 ff                	test   %edi,%edi
4801e1:	74 e5                	je     0x4801c8
4801e3:	33 db                	xor    %ebx,%ebx
4801e5:	66 39 1f             	cmp    %bx,(%edi)
4801e8:	74 de                	je     0x4801c8
4801ea:	66 39 1e             	cmp    %bx,(%esi)
4801ed:	75 0d                	jne    0x4801fc
4801ef:	e8 41 9d ff ff       	call   0x479f35
4801f4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4801fa:	eb dc                	jmp    0x4801d8
4801fc:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4801ff:	50                   	push   %eax
480200:	e8 c0 7b 00 00       	call   0x487dc5
480205:	59                   	pop    %ecx
480206:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
480209:	75 0d                	jne    0x480218
48020b:	e8 25 9d ff ff       	call   0x479f35
480210:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
480216:	eb c0                	jmp    0x4801d8
480218:	89 5d e0             	mov    %ebx,-0x20(%ebp)
48021b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48021e:	ff 75 e4             	push   -0x1c(%ebp)
480221:	ff 75 10             	push   0x10(%ebp)
480224:	57                   	push   %edi
480225:	56                   	push   %esi
480226:	e8 2d b1 00 00       	call   0x48b358
48022b:	83 c4 10             	add    $0x10,%esp
48022e:	8b f0                	mov    %eax,%esi
480230:	89 75 e0             	mov    %esi,-0x20(%ebp)
480233:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
48023a:	e8 15 00 00 00       	call   0x480254
48023f:	8b c6                	mov    %esi,%eax
480241:	8b 4d f0             	mov    -0x10(%ebp),%ecx
480244:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
48024b:	59                   	pop    %ecx
48024c:	5f                   	pop    %edi
48024d:	5e                   	pop    %esi
48024e:	5b                   	pop    %ebx
48024f:	c9                   	leave
480250:	c3                   	ret
480251:	8b 75 e0             	mov    -0x20(%ebp),%esi
480254:	85 f6                	test   %esi,%esi
480256:	75 09                	jne    0x480261
480258:	ff 75 e4             	push   -0x1c(%ebp)
48025b:	e8 ce 7b 00 00       	call   0x487e2e
480260:	59                   	pop    %ecx
480261:	ff 75 e4             	push   -0x1c(%ebp)
480264:	e8 97 9b ff ff       	call   0x479e00
480269:	59                   	pop    %ecx
48026a:	c3                   	ret
48026b:	8b ff                	mov    %edi,%edi
48026d:	55                   	push   %ebp
48026e:	8b ec                	mov    %esp,%ebp
480270:	56                   	push   %esi
480271:	8b 75 08             	mov    0x8(%ebp),%esi
480274:	85 f6                	test   %esi,%esi
480276:	75 11                	jne    0x480289
480278:	e8 b8 9c ff ff       	call   0x479f35
48027d:	6a 16                	push   $0x16
48027f:	5e                   	pop    %esi
480280:	89 30                	mov    %esi,(%eax)
480282:	e8 9a 93 ff ff       	call   0x479621
480287:	eb 24                	jmp    0x4802ad
480289:	68 80 00 00 00       	push   $0x80
48028e:	ff 75 10             	push   0x10(%ebp)
480291:	ff 75 0c             	push   0xc(%ebp)
480294:	e8 1c ff ff ff       	call   0x4801b5
480299:	83 c4 0c             	add    $0xc,%esp
48029c:	89 06                	mov    %eax,(%esi)
48029e:	85 c0                	test   %eax,%eax
4802a0:	75 09                	jne    0x4802ab
4802a2:	e8 8e 9c ff ff       	call   0x479f35
4802a7:	8b 30                	mov    (%eax),%esi
4802a9:	eb 02                	jmp    0x4802ad
4802ab:	33 f6                	xor    %esi,%esi
4802ad:	8b c6                	mov    %esi,%eax
4802af:	5e                   	pop    %esi
4802b0:	5d                   	pop    %ebp
4802b1:	c3                   	ret
4802b2:	8b ff                	mov    %edi,%edi
4802b4:	55                   	push   %ebp
4802b5:	8b ec                	mov    %esp,%ebp
4802b7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4802ba:	8b c1                	mov    %ecx,%eax
4802bc:	25 03 00 00 80       	and    $0x80000003,%eax
4802c1:	79 07                	jns    0x4802ca
4802c3:	48                   	dec    %eax
4802c4:	83 c8 fc             	or     $0xfffffffc,%eax
4802c7:	83 c0 01             	add    $0x1,%eax
4802ca:	75 12                	jne    0x4802de
4802cc:	56                   	push   %esi
4802cd:	6a 64                	push   $0x64
4802cf:	8b c1                	mov    %ecx,%eax
4802d1:	5e                   	pop    %esi
4802d2:	99                   	cltd
4802d3:	f7 fe                	idiv   %esi
4802d5:	5e                   	pop    %esi
4802d6:	85 d2                	test   %edx,%edx
4802d8:	74 04                	je     0x4802de