4051d4:	58                   	pop    %eax
4051d5:	eb 22                	jmp    0x4051f9
4051d7:	8b 14 30             	mov    (%eax,%esi,1),%edx
4051da:	01 d8                	add    %ebx,%eax
4051dc:	e8 af 0a 00 00       	call   0x405c90
4051e1:	b8 04 00 00 00       	mov    $0x4,%eax
4051e6:	eb 11                	jmp    0x4051f9
4051e8:	89 d1                	mov    %edx,%ecx
4051ea:	8b 14 30             	mov    (%eax,%esi,1),%edx
4051ed:	01 d8                	add    %ebx,%eax
4051ef:	e8 6c 03 00 00       	call   0x405560
4051f4:	b8 04 00 00 00       	mov    $0x4,%eax
4051f9:	03 47 04             	add    0x4(%edi),%eax
4051fc:	83 c7 08             	add    $0x8,%edi
4051ff:	4d                   	dec    %ebp
405200:	0f 85 14 ff ff ff    	jne    0x40511a
405206:	59                   	pop    %ecx
405207:	29 c1                	sub    %eax,%ecx
405209:	7e 0a                	jle    0x405215
40520b:	8d 14 18             	lea    (%eax,%ebx,1),%edx
40520e:	01 f0                	add    %esi,%eax
405210:	e8 43 da ff ff       	call   0x402c58
405215:	5d                   	pop    %ebp
405216:	5f                   	pop    %edi
405217:	5e                   	pop    %esi
405218:	5b                   	pop    %ebx
405219:	c3                   	ret
40521a:	8b c0                	mov    %eax,%eax
40521c:	53                   	push   %ebx
40521d:	56                   	push   %esi
40521e:	57                   	push   %edi
40521f:	55                   	push   %ebp
405220:	89 c3                	mov    %eax,%ebx
405222:	89 d6                	mov    %edx,%esi
405224:	89 cf                	mov    %ecx,%edi
405226:	8b 6c 24 14          	mov    0x14(%esp),%ebp
40522a:	8a 0f                	mov    (%edi),%cl
40522c:	80 f9 0a             	cmp    $0xa,%cl
40522f:	74 31                	je     0x405262
405231:	80 f9 0b             	cmp    $0xb,%cl
405234:	74 43                	je     0x405279
405236:	80 f9 0c             	cmp    $0xc,%cl
405239:	74 52                	je     0x40528d
40523b:	80 f9 0d             	cmp    $0xd,%cl
40523e:	74 61                	je     0x4052a1
405240:	80 f9 0e             	cmp    $0xe,%cl
405243:	74 7d                	je     0x4052c2
405245:	80 f9 0f             	cmp    $0xf,%cl
405248:	0f 84 91 00 00 00    	je     0x4052df
40524e:	80 f9 11             	cmp    $0x11,%cl
405251:	0f 84 9c 00 00 00    	je     0x4052f3
405257:	b0 02                	mov    $0x2,%al
405259:	5d                   	pop    %ebp
40525a:	5f                   	pop    %edi
40525b:	5e                   	pop    %esi
40525c:	5b                   	pop    %ebx
40525d:	e9 56 d9 ff ff       	jmp    0x402bb8
405262:	89 d8                	mov    %ebx,%eax
405264:	8b 16                	mov    (%esi),%edx
405266:	e8 59 f3 ff ff       	call   0x4045c4
40526b:	83 c3 04             	add    $0x4,%ebx
40526e:	83 c6 04             	add    $0x4,%esi
405271:	4d                   	dec    %ebp
405272:	75 ee                	jne    0x405262
405274:	e9 8e 00 00 00       	jmp    0x405307
405279:	89 d8                	mov    %ebx,%eax
40527b:	8b 16                	mov    (%esi),%edx
40527d:	e8 0a fa ff ff       	call   0x404c8c
405282:	83 c3 04             	add    $0x4,%ebx
405285:	83 c6 04             	add    $0x4,%esi
405288:	4d                   	dec    %ebp
405289:	75 ee                	jne    0x405279
40528b:	eb 7a                	jmp    0x405307
40528d:	89 d8                	mov    %ebx,%eax
40528f:	89 f2                	mov    %esi,%edx
405291:	e8 52 fe ff ff       	call   0x4050e8
405296:	83 c3 10             	add    $0x10,%ebx
405299:	83 c6 10             	add    $0x10,%esi
40529c:	4d                   	dec    %ebp
40529d:	75 ee                	jne    0x40528d
40529f:	eb 66                	jmp    0x405307
4052a1:	31 c9                	xor    %ecx,%ecx
4052a3:	8a 4f 01             	mov    0x1(%edi),%cl
4052a6:	8d 7c 39 02          	lea    0x2(%ecx,%edi,1),%edi
4052aa:	89 d8                	mov    %ebx,%eax
4052ac:	89 f2                	mov    %esi,%edx
4052ae:	8b 4f 08             	mov    0x8(%edi),%ecx
4052b1:	ff 77 04             	push   0x4(%edi)
4052b4:	e8 63 ff ff ff       	call   0x40521c
4052b9:	03 1f                	add    (%edi),%ebx
4052bb:	03 37                	add    (%edi),%esi
4052bd:	4d                   	dec    %ebp
4052be:	75 ea                	jne    0x4052aa
4052c0:	eb 45                	jmp    0x405307
4052c2:	89 d8                	mov    %ebx,%eax
4052c4:	89 f2                	mov    %esi,%edx
4052c6:	89 f9                	mov    %edi,%ecx
4052c8:	e8 33 fe ff ff       	call   0x405100
4052cd:	31 c0                	xor    %eax,%eax
4052cf:	8a 47 01             	mov    0x1(%edi),%al
4052d2:	03 5c 38 02          	add    0x2(%eax,%edi,1),%ebx
4052d6:	03 74 38 02          	add    0x2(%eax,%edi,1),%esi
4052da:	4d                   	dec    %ebp
4052db:	75 e5                	jne    0x4052c2
4052dd:	eb 28                	jmp    0x405307
4052df:	89 d8                	mov    %ebx,%eax
4052e1:	8b 16                	mov    (%esi),%edx
4052e3:	e8 a8 09 00 00       	call   0x405c90
4052e8:	83 c3 04             	add    $0x4,%ebx
4052eb:	83 c6 04             	add    $0x4,%esi
4052ee:	4d                   	dec    %ebp
4052ef:	75 ee                	jne    0x4052df
4052f1:	eb 14                	jmp    0x405307
4052f3:	89 d8                	mov    %ebx,%eax
4052f5:	8b 16                	mov    (%esi),%edx
4052f7:	89 f9                	mov    %edi,%ecx
4052f9:	e8 62 02 00 00       	call   0x405560
4052fe:	83 c3 04             	add    $0x4,%ebx
405301:	83 c6 04             	add    $0x4,%esi
405304:	4d                   	dec    %ebp
405305:	75 ec                	jne    0x4052f3
405307:	5d                   	pop    %ebp
405308:	5f                   	pop    %edi
405309:	5e                   	pop    %esi
40530a:	5b                   	pop    %ebx
40530b:	c2 04 00             	ret    $0x4
40530e:	c3                   	ret
40530f:	90                   	nop
405310:	b0 11                	mov    $0x11,%al
405312:	e9 a1 d8 ff ff       	jmp    0x402bb8
405317:	c3                   	ret
405318:	52                   	push   %edx
405319:	50                   	push   %eax
40531a:	8b 44 24 10          	mov    0x10(%esp),%eax
40531e:	f7 24 24             	mull   (%esp)
405321:	89 c1                	mov    %eax,%ecx
405323:	8b 44 24 04          	mov    0x4(%esp),%eax
405327:	f7 64 24 0c          	mull   0xc(%esp)
40532b:	01 c1                	add    %eax,%ecx
40532d:	8b 04 24             	mov    (%esp),%eax
405330:	f7 64 24 0c          	mull   0xc(%esp)
405334:	01 ca                	add    %ecx,%edx
405336:	59                   	pop    %ecx
405337:	59                   	pop    %ecx
405338:	c2 08 00             	ret    $0x8
40533b:	c3                   	ret
40533c:	85 c0                	test   %eax,%eax
40533e:	74 03                	je     0x405343
405340:	8b 40 fc             	mov    -0x4(%eax),%eax
405343:	c3                   	ret
405344:	e8 f3 ff ff ff       	call   0x40533c
405349:	48                   	dec    %eax
40534a:	c3                   	ret
40534b:	90                   	nop
40534c:	55                   	push   %ebp
40534d:	8b ec                	mov    %esp,%ebp
40534f:	ff 75 08             	push   0x8(%ebp)
405352:	e8 c5 fe ff ff       	call   0x40521c
405357:	5d                   	pop    %ebp
405358:	c2 04 00             	ret    $0x4
40535b:	90                   	nop
40535c:	e9 8f fc ff ff       	jmp    0x404ff0
405361:	c3                   	ret
405362:	8b c0                	mov    %eax,%eax
405364:	e8 bb 01 00 00       	call   0x405524
405369:	c3                   	ret
40536a:	8b c0                	mov    %eax,%eax
40536c:	55                   	push   %ebp
40536d:	8b ec                	mov    %esp,%ebp
40536f:	83 c4 e4             	add    $0xffffffe4,%esp
405372:	53                   	push   %ebx
405373:	56                   	push   %esi
405374:	57                   	push   %edi
405375:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405378:	89 55 f8             	mov    %edx,-0x8(%ebp)
40537b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40537e:	8b 45 fc             	mov    -0x4(%ebp),%eax
405381:	8b 00                	mov    (%eax),%eax
405383:	89 45 e8             	mov    %eax,-0x18(%ebp)
405386:	8b 45 08             	mov    0x8(%ebp),%eax
405389:	8b 18                	mov    (%eax),%ebx
40538b:	85 db                	test   %ebx,%ebx
40538d:	7f 1b                	jg     0x4053aa
40538f:	85 db                	test   %ebx,%ebx
405391:	7d 07                	jge    0x40539a
405393:	b0 04                	mov    $0x4,%al
405395:	e8 1e d8 ff ff       	call   0x402bb8
40539a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40539d:	8b 55 f8             	mov    -0x8(%ebp),%edx
4053a0:	e8 bf ff ff ff       	call   0x405364
4053a5:	e9 63 01 00 00       	jmp    0x40550d
4053aa:	33 ff                	xor    %edi,%edi
4053ac:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4053b0:	74 0d                	je     0x4053bf
4053b2:	83 6d e8 04          	subl   $0x4,-0x18(%ebp)
4053b6:	8b 45 e8             	mov    -0x18(%ebp),%eax
4053b9:	8b 38                	mov    (%eax),%edi
4053bb:	83 6d e8 04          	subl   $0x4,-0x18(%ebp)
4053bf:	8b 45 f8             	mov    -0x8(%ebp),%eax
4053c2:	0f b6 40 01          	movzbl 0x1(%eax),%eax
4053c6:	01 45 f8             	add    %eax,-0x8(%ebp)
4053c9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4053cc:	8b 70 02             	mov    0x2(%eax),%esi
4053cf:	8b 50 06             	mov    0x6(%eax),%edx
4053d2:	85 d2                	test   %edx,%edx
4053d4:	74 07                	je     0x4053dd
4053d6:	8b 02                	mov    (%edx),%eax
4053d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4053db:	eb 05                	jmp    0x4053e2
4053dd:	33 c0                	xor    %eax,%eax
4053df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4053e2:	8b c3                	mov    %ebx,%eax
4053e4:	f7 ee                	imul   %esi
4053e6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4053e9:	8b 45 ec             	mov    -0x14(%ebp),%eax
4053ec:	99                   	cltd
4053ed:	f7 fb                	idiv   %ebx
4053ef:	3b f0                	cmp    %eax,%esi
4053f1:	74 07                	je     0x4053fa
4053f3:	b0 04                	mov    $0x4,%al
4053f5:	e8 be d7 ff ff       	call   0x402bb8
4053fa:	83 45 ec 08          	addl   $0x8,-0x14(%ebp)
4053fe:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
405402:	74 08                	je     0x40540c
405404:	8b 45 e8             	mov    -0x18(%ebp),%eax
405407:	83 38 01             	cmpl   $0x1,(%eax)
40540a:	75 3c                	jne    0x405448
40540c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40540f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405412:	3b fb                	cmp    %ebx,%edi
405414:	7e 1f                	jle    0x405435
405416:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40541a:	74 19                	je     0x405435
40541c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40541f:	83 c0 08             	add    $0x8,%eax
405422:	8b d3                	mov    %ebx,%edx
405424:	0f af d6             	imul   %esi,%edx
405427:	03 c2                	add    %edx,%eax
405429:	8b cf                	mov    %edi,%ecx
40542b:	2b cb                	sub    %ebx,%ecx
40542d:	8b 55 f8             	mov    -0x8(%ebp),%edx
405430:	e8 27 ff ff ff       	call   0x40535c
405435:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405438:	8b 55 ec             	mov    -0x14(%ebp),%edx
40543b:	e8 48 d6 ff ff       	call   0x402a88
405440:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405443:	89 45 e8             	mov    %eax,-0x18(%ebp)
405446:	eb 63                	jmp    0x4054ab
405448:	8b 45 e8             	mov    -0x18(%ebp),%eax
40544b:	ff 08                	decl   (%eax)
40544d:	8b 45 ec             	mov    -0x14(%ebp),%eax
405450:	e8 e3 d5 ff ff       	call   0x402a38
405455:	89 45 e8             	mov    %eax,-0x18(%ebp)
405458:	89 7d f0             	mov    %edi,-0x10(%ebp)
40545b:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
40545e:	7d 03                	jge    0x405463
405460:	89 5d f0             	mov    %ebx,-0x10(%ebp)
405463:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405467:	74 2c                	je     0x405495
405469:	8b 55 f0             	mov    -0x10(%ebp),%edx
40546c:	0f af d6             	imul   %esi,%edx
40546f:	8b 45 e8             	mov    -0x18(%ebp),%eax
405472:	83 c0 08             	add    $0x8,%eax
405475:	33 c9                	xor    %ecx,%ecx
405477:	e8 a0 da ff ff       	call   0x402f1c
40547c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40547f:	50                   	push   %eax
405480:	8b 55 fc             	mov    -0x4(%ebp),%edx
405483:	8b 12                	mov    (%edx),%edx
405485:	8b 45 e8             	mov    -0x18(%ebp),%eax
405488:	83 c0 08             	add    $0x8,%eax
40548b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40548e:	e8 b9 fe ff ff       	call   0x40534c
405493:	eb 16                	jmp    0x4054ab
405495:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405498:	0f af ce             	imul   %esi,%ecx
40549b:	8b 55 e8             	mov    -0x18(%ebp),%edx
40549e:	83 c2 08             	add    $0x8,%edx
4054a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4054a4:	8b 00                	mov    (%eax),%eax
4054a6:	e8 ad d7 ff ff       	call   0x402c58
4054ab:	8b 45 e8             	mov    -0x18(%ebp),%eax
4054ae:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4054b4:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
4054b8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4054bb:	89 18                	mov    %ebx,(%eax)
4054bd:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
4054c1:	8b d3                	mov    %ebx,%edx
4054c3:	2b d7                	sub    %edi,%edx
4054c5:	0f af d6             	imul   %esi,%edx
4054c8:	8b c6                	mov    %esi,%eax
4054ca:	0f af c7             	imul   %edi,%eax
4054cd:	03 45 e8             	add    -0x18(%ebp),%eax
4054d0:	33 c9                	xor    %ecx,%ecx
4054d2:	e8 45 da ff ff       	call   0x402f1c
4054d7:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
4054db:	7e 28                	jle    0x405505
4054dd:	83 45 08 04          	addl   $0x4,0x8(%ebp)
4054e1:	ff 4d f4             	decl   -0xc(%ebp)
4054e4:	4b                   	dec    %ebx
4054e5:	85 db                	test   %ebx,%ebx
4054e7:	7c 1c                	jl     0x405505
4054e9:	43                   	inc    %ebx
4054ea:	33 f6                	xor    %esi,%esi
4054ec:	8b 45 08             	mov    0x8(%ebp),%eax
4054ef:	50                   	push   %eax
4054f0:	8b 45 e8             	mov    -0x18(%ebp),%eax
4054f3:	8d 04 b0             	lea    (%eax,%esi,4),%eax
4054f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4054f9:	8b 55 f8             	mov    -0x8(%ebp),%edx
4054fc:	e8 6b fe ff ff       	call   0x40536c
405501:	46                   	inc    %esi
405502:	4b                   	dec    %ebx
405503:	75 e7                	jne    0x4054ec
405505:	8b 45 fc             	mov    -0x4(%ebp),%eax
405508:	8b 55 e8             	mov    -0x18(%ebp),%edx
40550b:	89 10                	mov    %edx,(%eax)
40550d:	5f                   	pop    %edi
40550e:	5e                   	pop    %esi
40550f:	5b                   	pop    %ebx
405510:	8b e5                	mov    %ebp,%esp
405512:	5d                   	pop    %ebp
405513:	c2 04 00             	ret    $0x4
405516:	8b c0                	mov    %eax,%eax
405518:	54                   	push   %esp
405519:	83 04 24 04          	addl   $0x4,(%esp)
40551d:	e8 4a fe ff ff       	call   0x40536c
405522:	c3                   	ret
405523:	90                   	nop
405524:	8b 08                	mov    (%eax),%ecx
405526:	85 c9                	test   %ecx,%ecx
405528:	74 33                	je     0x40555d
40552a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
405530:	f0 ff 49 f8          	lock decl -0x8(%ecx)
405534:	75 27                	jne    0x40555d
405536:	50                   	push   %eax
405537:	89 c8                	mov    %ecx,%eax
405539:	31 c9                	xor    %ecx,%ecx
40553b:	8a 4a 01             	mov    0x1(%edx),%cl
40553e:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
405542:	85 d2                	test   %edx,%edx
405544:	74 0e                	je     0x405554
405546:	8b 48 fc             	mov    -0x4(%eax),%ecx
405549:	85 c9                	test   %ecx,%ecx
40554b:	74 07                	je     0x405554
40554d:	8b 12                	mov    (%edx),%edx
40554f:	e8 9c fa ff ff       	call   0x404ff0
405554:	83 e8 08             	sub    $0x8,%eax
405557:	e8 0c d5 ff ff       	call   0x402a68
40555c:	58                   	pop    %eax