424f97:	f7 da                	neg    %edx
424f99:	8b 4d 18             	mov    0x18(%ebp),%ecx
424f9c:	8b df                	mov    %edi,%ebx
424f9e:	8b c2                	mov    %edx,%eax
424fa0:	33 d2                	xor    %edx,%edx
424fa2:	f7 75 14             	divl   0x14(%ebp)
424fa5:	89 55 08             	mov    %edx,0x8(%ebp)
424fa8:	8b d0                	mov    %eax,%edx
424faa:	8b 45 08             	mov    0x8(%ebp),%eax
424fad:	83 f8 09             	cmp    $0x9,%eax
424fb0:	76 05                	jbe    0x424fb7
424fb2:	83 c0 57             	add    $0x57,%eax
424fb5:	eb 03                	jmp    0x424fba
424fb7:	83 c0 30             	add    $0x30,%eax
424fba:	66 89 07             	mov    %ax,(%edi)
424fbd:	83 c7 02             	add    $0x2,%edi
424fc0:	41                   	inc    %ecx
424fc1:	85 d2                	test   %edx,%edx
424fc3:	74 05                	je     0x424fca
424fc5:	3b 4d 10             	cmp    0x10(%ebp),%ecx
424fc8:	72 d4                	jb     0x424f9e
424fca:	3b 4d 10             	cmp    0x10(%ebp),%ecx
424fcd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424fd0:	72 15                	jb     0x424fe7
424fd2:	33 c0                	xor    %eax,%eax
424fd4:	66 89 01             	mov    %ax,(%ecx)
424fd7:	e8 32 2c 00 00       	call   0x427c0e
424fdc:	89 30                	mov    %esi,(%eax)
424fde:	e8 2d 1e 00 00       	call   0x426e10
424fe3:	8b c6                	mov    %esi,%eax
424fe5:	eb 20                	jmp    0x425007
424fe7:	33 c0                	xor    %eax,%eax
424fe9:	66 89 07             	mov    %ax,(%edi)
424fec:	83 ef 02             	sub    $0x2,%edi
424fef:	0f b7 0f             	movzwl (%edi),%ecx
424ff2:	66 8b 03             	mov    (%ebx),%ax
424ff5:	66 89 07             	mov    %ax,(%edi)
424ff8:	66 89 0b             	mov    %cx,(%ebx)
424ffb:	83 ef 02             	sub    $0x2,%edi
424ffe:	83 c3 02             	add    $0x2,%ebx
425001:	3b df                	cmp    %edi,%ebx
425003:	72 ea                	jb     0x424fef
425005:	33 c0                	xor    %eax,%eax
425007:	5f                   	pop    %edi
425008:	5b                   	pop    %ebx
425009:	5e                   	pop    %esi
42500a:	5d                   	pop    %ebp
42500b:	c2 14 00             	ret    $0x14
42500e:	55                   	push   %ebp
42500f:	8b ec                	mov    %esp,%ebp
425011:	83 ec 14             	sub    $0x14,%esp
425014:	53                   	push   %ebx
425015:	56                   	push   %esi
425016:	33 db                	xor    %ebx,%ebx
425018:	57                   	push   %edi
425019:	8b 7d 08             	mov    0x8(%ebp),%edi
42501c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
42501f:	89 5d f4             	mov    %ebx,-0xc(%ebp)
425022:	89 5d fc             	mov    %ebx,-0x4(%ebp)
425025:	85 ff                	test   %edi,%edi
425027:	75 16                	jne    0x42503f
425029:	e8 e0 2b 00 00       	call   0x427c0e
42502e:	6a 16                	push   $0x16
425030:	5e                   	pop    %esi
425031:	89 30                	mov    %esi,(%eax)
425033:	e8 d8 1d 00 00       	call   0x426e10
425038:	8b c6                	mov    %esi,%eax
42503a:	5f                   	pop    %edi
42503b:	5e                   	pop    %esi
42503c:	5b                   	pop    %ebx
42503d:	c9                   	leave
42503e:	c3                   	ret
42503f:	6a 24                	push   $0x24
425041:	68 ff 00 00 00       	push   $0xff
425046:	57                   	push   %edi
425047:	e8 04 bd ff ff       	call   0x420d50
42504c:	8b 75 0c             	mov    0xc(%ebp),%esi
42504f:	83 c4 0c             	add    $0xc,%esp
425052:	85 f6                	test   %esi,%esi
425054:	74 d3                	je     0x425029
425056:	39 5e 04             	cmp    %ebx,0x4(%esi)
425059:	7f 12                	jg     0x42506d
42505b:	7c 04                	jl     0x425061
42505d:	39 1e                	cmp    %ebx,(%esi)
42505f:	73 0c                	jae    0x42506d
425061:	e8 a8 2b 00 00       	call   0x427c0e
425066:	6a 16                	push   $0x16
425068:	5e                   	pop    %esi
425069:	89 30                	mov    %esi,(%eax)
42506b:	eb cb                	jmp    0x425038
42506d:	6a 07                	push   $0x7
42506f:	58                   	pop    %eax
425070:	39 46 04             	cmp    %eax,0x4(%esi)
425073:	7c 0a                	jl     0x42507f
425075:	7f ea                	jg     0x425061
425077:	81 3e ff 6f 40 93    	cmpl   $0x93406fff,(%esi)
42507d:	77 e2                	ja     0x425061
42507f:	e8 8e cb 00 00       	call   0x431c12
425084:	8d 45 f8             	lea    -0x8(%ebp),%eax
425087:	50                   	push   %eax
425088:	e8 de c8 00 00       	call   0x43196b
42508d:	59                   	pop    %ecx
42508e:	85 c0                	test   %eax,%eax
425090:	0f 85 e5 01 00 00    	jne    0x42527b
425096:	8d 45 f4             	lea    -0xc(%ebp),%eax
425099:	50                   	push   %eax
42509a:	e8 f6 c8 00 00       	call   0x431995
42509f:	59                   	pop    %ecx
4250a0:	85 c0                	test   %eax,%eax
4250a2:	0f 85 d3 01 00 00    	jne    0x42527b
4250a8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4250ab:	50                   	push   %eax
4250ac:	e8 0e c9 00 00       	call   0x4319bf
4250b1:	59                   	pop    %ecx
4250b2:	85 c0                	test   %eax,%eax
4250b4:	0f 85 c1 01 00 00    	jne    0x42527b
4250ba:	8b 5e 04             	mov    0x4(%esi),%ebx
4250bd:	8b 0e                	mov    (%esi),%ecx
4250bf:	85 db                	test   %ebx,%ebx
4250c1:	7c 6e                	jl     0x425131
4250c3:	7f 08                	jg     0x4250cd
4250c5:	81 f9 80 f4 03 00    	cmp    $0x3f480,%ecx
4250cb:	76 64                	jbe    0x425131
4250cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4250d0:	99                   	cltd
4250d1:	2b c8                	sub    %eax,%ecx
4250d3:	8d 45 ec             	lea    -0x14(%ebp),%eax
4250d6:	50                   	push   %eax
4250d7:	1b da                	sbb    %edx,%ebx
4250d9:	57                   	push   %edi
4250da:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4250dd:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4250e0:	e8 04 c9 00 00       	call   0x4319e9
4250e5:	59                   	pop    %ecx
4250e6:	59                   	pop    %ecx
4250e7:	85 c0                	test   %eax,%eax
4250e9:	0f 85 4b ff ff ff    	jne    0x42503a
4250ef:	39 45 f8             	cmp    %eax,-0x8(%ebp)
4250f2:	0f 84 3c 01 00 00    	je     0x425234
4250f8:	57                   	push   %edi
4250f9:	e8 64 cb 00 00       	call   0x431c62
4250fe:	59                   	pop    %ecx
4250ff:	85 c0                	test   %eax,%eax
425101:	0f 84 2d 01 00 00    	je     0x425234
425107:	8b 45 f4             	mov    -0xc(%ebp),%eax
42510a:	99                   	cltd
42510b:	29 45 ec             	sub    %eax,-0x14(%ebp)
42510e:	8d 45 ec             	lea    -0x14(%ebp),%eax
425111:	50                   	push   %eax
425112:	19 55 f0             	sbb    %edx,-0x10(%ebp)
425115:	57                   	push   %edi
425116:	e8 ce c8 00 00       	call   0x4319e9
42511b:	59                   	pop    %ecx
42511c:	59                   	pop    %ecx
42511d:	85 c0                	test   %eax,%eax
42511f:	0f 85 15 ff ff ff    	jne    0x42503a
425125:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
42512c:	e9 03 01 00 00       	jmp    0x425234
425131:	56                   	push   %esi
425132:	57                   	push   %edi
425133:	e8 b1 c8 00 00       	call   0x4319e9
425138:	59                   	pop    %ecx
425139:	59                   	pop    %ecx
42513a:	85 c0                	test   %eax,%eax
42513c:	0f 85 f8 fe ff ff    	jne    0x42503a
425142:	39 45 f8             	cmp    %eax,-0x8(%ebp)
425145:	74 2d                	je     0x425174
425147:	57                   	push   %edi
425148:	e8 15 cb 00 00       	call   0x431c62
42514d:	59                   	pop    %ecx
42514e:	85 c0                	test   %eax,%eax
425150:	74 22                	je     0x425174
425152:	8b 45 f4             	mov    -0xc(%ebp),%eax
425155:	03 45 fc             	add    -0x4(%ebp),%eax
425158:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
42515f:	99                   	cltd
425160:	8b c8                	mov    %eax,%ecx
425162:	8b 07                	mov    (%edi),%eax
425164:	8b f2                	mov    %edx,%esi
425166:	99                   	cltd
425167:	8b d8                	mov    %eax,%ebx
425169:	2b d9                	sub    %ecx,%ebx
42516b:	1b d6                	sbb    %esi,%edx
42516d:	89 55 08             	mov    %edx,0x8(%ebp)
425170:	8b f2                	mov    %edx,%esi
425172:	eb 0f                	jmp    0x425183
425174:	8b 07                	mov    (%edi),%eax
425176:	99                   	cltd
425177:	8b d8                	mov    %eax,%ebx
425179:	8b 45 fc             	mov    -0x4(%ebp),%eax
42517c:	8b f2                	mov    %edx,%esi
42517e:	99                   	cltd
42517f:	2b d8                	sub    %eax,%ebx
425181:	1b f2                	sbb    %edx,%esi
425183:	6a 00                	push   $0x0
425185:	6a 3c                	push   $0x3c
425187:	56                   	push   %esi
425188:	53                   	push   %ebx
425189:	e8 d2 d2 00 00       	call   0x432460
42518e:	89 07                	mov    %eax,(%edi)
425190:	85 c0                	test   %eax,%eax
425192:	79 0b                	jns    0x42519f
425194:	83 c0 3c             	add    $0x3c,%eax
425197:	83 c3 c4             	add    $0xffffffc4,%ebx
42519a:	89 07                	mov    %eax,(%edi)
42519c:	83 d6 ff             	adc    $0xffffffff,%esi
42519f:	6a 00                	push   $0x0
4251a1:	6a 3c                	push   $0x3c
4251a3:	56                   	push   %esi
4251a4:	53                   	push   %ebx
4251a5:	e8 06 d2 00 00       	call   0x4323b0
4251aa:	8b f0                	mov    %eax,%esi
4251ac:	8b 47 04             	mov    0x4(%edi),%eax
4251af:	8b da                	mov    %edx,%ebx
4251b1:	99                   	cltd
4251b2:	6a 00                	push   $0x0
4251b4:	03 f0                	add    %eax,%esi
4251b6:	6a 3c                	push   $0x3c
4251b8:	13 da                	adc    %edx,%ebx
4251ba:	53                   	push   %ebx
4251bb:	56                   	push   %esi
4251bc:	e8 9f d2 00 00       	call   0x432460
4251c1:	89 47 04             	mov    %eax,0x4(%edi)
4251c4:	85 c0                	test   %eax,%eax
4251c6:	79 0c                	jns    0x4251d4
4251c8:	83 c0 3c             	add    $0x3c,%eax
4251cb:	83 c6 c4             	add    $0xffffffc4,%esi
4251ce:	89 47 04             	mov    %eax,0x4(%edi)
4251d1:	83 d3 ff             	adc    $0xffffffff,%ebx
4251d4:	6a 00                	push   $0x0
4251d6:	6a 3c                	push   $0x3c
4251d8:	53                   	push   %ebx
4251d9:	56                   	push   %esi
4251da:	e8 d1 d1 00 00       	call   0x4323b0
4251df:	8b f0                	mov    %eax,%esi
4251e1:	8b 47 08             	mov    0x8(%edi),%eax
4251e4:	8b da                	mov    %edx,%ebx
4251e6:	99                   	cltd
4251e7:	6a 00                	push   $0x0
4251e9:	03 f0                	add    %eax,%esi
4251eb:	6a 18                	push   $0x18
4251ed:	13 da                	adc    %edx,%ebx
4251ef:	53                   	push   %ebx
4251f0:	56                   	push   %esi
4251f1:	e8 6a d2 00 00       	call   0x432460
4251f6:	89 47 08             	mov    %eax,0x8(%edi)
4251f9:	85 c0                	test   %eax,%eax
4251fb:	79 0c                	jns    0x425209
4251fd:	83 c0 18             	add    $0x18,%eax
425200:	83 c6 e8             	add    $0xffffffe8,%esi
425203:	89 47 08             	mov    %eax,0x8(%edi)
425206:	83 d3 ff             	adc    $0xffffffff,%ebx
425209:	6a 00                	push   $0x0
42520b:	6a 18                	push   $0x18
42520d:	53                   	push   %ebx
42520e:	56                   	push   %esi
42520f:	e8 9c d1 00 00       	call   0x4323b0
425214:	8b c8                	mov    %eax,%ecx
425216:	85 d2                	test   %edx,%edx
425218:	7c 2b                	jl     0x425245
42521a:	7f 04                	jg     0x425220
42521c:	85 c9                	test   %ecx,%ecx
42521e:	74 1b                	je     0x42523b
425220:	8b 47 18             	mov    0x18(%edi),%eax
425223:	03 c1                	add    %ecx,%eax
425225:	6a 07                	push   $0x7
425227:	99                   	cltd
425228:	5e                   	pop    %esi
425229:	f7 fe                	idiv   %esi
42522b:	01 4f 0c             	add    %ecx,0xc(%edi)
42522e:	89 57 18             	mov    %edx,0x18(%edi)
425231:	01 4f 1c             	add    %ecx,0x1c(%edi)
425234:	33 c0                	xor    %eax,%eax
425236:	e9 ff fd ff ff       	jmp    0x42503a
42523b:	85 d2                	test   %edx,%edx
42523d:	7f f5                	jg     0x425234
42523f:	7c 04                	jl     0x425245
425241:	85 c9                	test   %ecx,%ecx
425243:	73 ef                	jae    0x425234
425245:	8b 47 18             	mov    0x18(%edi),%eax
425248:	83 c0 07             	add    $0x7,%eax
42524b:	03 c1                	add    %ecx,%eax
42524d:	99                   	cltd
42524e:	6a 07                	push   $0x7
425250:	5e                   	pop    %esi
425251:	f7 fe                	idiv   %esi
425253:	01 4f 0c             	add    %ecx,0xc(%edi)
425256:	8b 47 0c             	mov    0xc(%edi),%eax
425259:	89 57 18             	mov    %edx,0x18(%edi)
42525c:	85 c0                	test   %eax,%eax
42525e:	7f d1                	jg     0x425231
425260:	83 c0 1f             	add    $0x1f,%eax
425263:	89 47 0c             	mov    %eax,0xc(%edi)
425266:	8d 81 6d 01 00 00    	lea    0x16d(%ecx),%eax
42526c:	01 47 1c             	add    %eax,0x1c(%edi)
42526f:	ff 4f 14             	decl   0x14(%edi)
425272:	c7 47 10 0b 00 00 00 	movl   $0xb,0x10(%edi)
425279:	eb b9                	jmp    0x425234
42527b:	53                   	push   %ebx
42527c:	53                   	push   %ebx
42527d:	53                   	push   %ebx
42527e:	53                   	push   %ebx
42527f:	53                   	push   %ebx
425280:	e8 9b 1b 00 00       	call   0x426e20
425285:	cc                   	int3
425286:	55                   	push   %ebp
425287:	8b ec                	mov    %esp,%ebp
425289:	0f b7 45 0c          	movzwl 0xc(%ebp),%eax
42528d:	53                   	push   %ebx
42528e:	56                   	push   %esi
42528f:	57                   	push   %edi
425290:	83 f8 59             	cmp    $0x59,%eax
425293:	0f 8f 39 02 00 00    	jg     0x4254d2
425299:	0f 84 f9 01 00 00    	je     0x425498
42529f:	83 f8 49             	cmp    $0x49,%eax
4252a2:	0f 8f fe 00 00 00    	jg     0x4253a6
4252a8:	0f 84 c4 00 00 00    	je     0x425372
4252ae:	83 e8 04             	sub    $0x4,%eax
4252b1:	0f 84 c9 04 00 00    	je     0x425780
4252b7:	83 e8 09             	sub    $0x9,%eax
4252ba:	0f 84 c0 04 00 00    	je     0x425780
4252c0:	83 e8 18             	sub    $0x18,%eax
4252c3:	0f 84 91 00 00 00    	je     0x42535a
4252c9:	83 e8 1c             	sub    $0x1c,%eax
4252cc:	74 60                	je     0x42532e
4252ce:	48                   	dec    %eax
4252cf:	74 31                	je     0x425302
4252d1:	83 e8 06             	sub    $0x6,%eax
4252d4:	0f 85 7f 03 00 00    	jne    0x425659
4252da:	8b 45 10             	mov    0x10(%ebp),%eax
4252dd:	8b 40 08             	mov    0x8(%eax),%eax
4252e0:	85 c0                	test   %eax,%eax
4252e2:	0f 88 61 03 00 00    	js     0x425649
4252e8:	83 f8 17             	cmp    $0x17,%eax
4252eb:	0f 8f 58 03 00 00    	jg     0x425649
4252f1:	ff 75 20             	push   0x20(%ebp)
4252f4:	ff 75 18             	push   0x18(%ebp)
4252f7:	ff 75 14             	push   0x14(%ebp)
4252fa:	6a 02                	push   $0x2
4252fc:	50                   	push   %eax
4252fd:	e9 56 02 00 00       	jmp    0x425558
425302:	8b 45 10             	mov    0x10(%ebp),%eax
425305:	8b 48 10             	mov    0x10(%eax),%ecx
425308:	85 c9                	test   %ecx,%ecx
42530a:	0f 88 39 03 00 00    	js     0x425649
425310:	83 f9 0b             	cmp    $0xb,%ecx
425313:	0f 8f 30 03 00 00    	jg     0x425649
425319:	ff 75 18             	push   0x18(%ebp)
42531c:	8b 45 1c             	mov    0x1c(%ebp),%eax
42531f:	ff 75 14             	push   0x14(%ebp)