404115:	e8 0e e8 ff ff       	call   0x402928
40411a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40411d:	8b 55 f8             	mov    -0x8(%ebp),%edx
404120:	e8 bf ff ff ff       	call   0x4040e4
404125:	e9 63 01 00 00       	jmp    0x40428d
40412a:	33 ff                	xor    %edi,%edi
40412c:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
404130:	74 0d                	je     0x40413f
404132:	83 6d e8 04          	subl   $0x4,-0x18(%ebp)
404136:	8b 45 e8             	mov    -0x18(%ebp),%eax
404139:	8b 38                	mov    (%eax),%edi
40413b:	83 6d e8 04          	subl   $0x4,-0x18(%ebp)
40413f:	8b 45 f8             	mov    -0x8(%ebp),%eax
404142:	0f b6 40 01          	movzbl 0x1(%eax),%eax
404146:	01 45 f8             	add    %eax,-0x8(%ebp)
404149:	8b 45 f8             	mov    -0x8(%ebp),%eax
40414c:	8b 70 02             	mov    0x2(%eax),%esi
40414f:	8b 50 06             	mov    0x6(%eax),%edx
404152:	85 d2                	test   %edx,%edx
404154:	74 07                	je     0x40415d
404156:	8b 02                	mov    (%edx),%eax
404158:	89 45 f8             	mov    %eax,-0x8(%ebp)
40415b:	eb 05                	jmp    0x404162
40415d:	33 c0                	xor    %eax,%eax
40415f:	89 45 f8             	mov    %eax,-0x8(%ebp)
404162:	8b c3                	mov    %ebx,%eax
404164:	f7 ee                	imul   %esi
404166:	89 45 ec             	mov    %eax,-0x14(%ebp)
404169:	8b 45 ec             	mov    -0x14(%ebp),%eax
40416c:	99                   	cltd
40416d:	f7 fb                	idiv   %ebx
40416f:	3b f0                	cmp    %eax,%esi
404171:	74 07                	je     0x40417a
404173:	b0 04                	mov    $0x4,%al
404175:	e8 ae e7 ff ff       	call   0x402928
40417a:	83 45 ec 08          	addl   $0x8,-0x14(%ebp)
40417e:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
404182:	74 08                	je     0x40418c
404184:	8b 45 e8             	mov    -0x18(%ebp),%eax
404187:	83 38 01             	cmpl   $0x1,(%eax)
40418a:	75 3c                	jne    0x4041c8
40418c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40418f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404192:	3b fb                	cmp    %ebx,%edi
404194:	7e 1f                	jle    0x4041b5
404196:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40419a:	74 19                	je     0x4041b5
40419c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40419f:	83 c0 08             	add    $0x8,%eax
4041a2:	8b d3                	mov    %ebx,%edx
4041a4:	0f af d6             	imul   %esi,%edx
4041a7:	03 c2                	add    %edx,%eax
4041a9:	8b cf                	mov    %edi,%ecx
4041ab:	2b cb                	sub    %ebx,%ecx
4041ad:	8b 55 f8             	mov    -0x8(%ebp),%edx
4041b0:	e8 27 ff ff ff       	call   0x4040dc
4041b5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4041b8:	8b 55 ec             	mov    -0x14(%ebp),%edx
4041bb:	e8 c0 e6 ff ff       	call   0x402880
4041c0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4041c3:	89 45 e8             	mov    %eax,-0x18(%ebp)
4041c6:	eb 63                	jmp    0x40422b
4041c8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4041cb:	ff 08                	decl   (%eax)
4041cd:	8b 45 ec             	mov    -0x14(%ebp),%eax
4041d0:	e8 5b e6 ff ff       	call   0x402830
4041d5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4041d8:	89 7d f0             	mov    %edi,-0x10(%ebp)
4041db:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
4041de:	7d 03                	jge    0x4041e3
4041e0:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4041e3:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4041e7:	74 2c                	je     0x404215
4041e9:	8b 55 f0             	mov    -0x10(%ebp),%edx
4041ec:	0f af d6             	imul   %esi,%edx
4041ef:	8b 45 e8             	mov    -0x18(%ebp),%eax
4041f2:	83 c0 08             	add    $0x8,%eax
4041f5:	33 c9                	xor    %ecx,%ecx
4041f7:	e8 98 e8 ff ff       	call   0x402a94
4041fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4041ff:	50                   	push   %eax
404200:	8b 55 fc             	mov    -0x4(%ebp),%edx
404203:	8b 12                	mov    (%edx),%edx
404205:	8b 45 e8             	mov    -0x18(%ebp),%eax
404208:	83 c0 08             	add    $0x8,%eax
40420b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40420e:	e8 b9 fe ff ff       	call   0x4040cc
404213:	eb 16                	jmp    0x40422b
404215:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404218:	0f af ce             	imul   %esi,%ecx
40421b:	8b 55 e8             	mov    -0x18(%ebp),%edx
40421e:	83 c2 08             	add    $0x8,%edx
404221:	8b 45 fc             	mov    -0x4(%ebp),%eax
404224:	8b 00                	mov    (%eax),%eax
404226:	e8 19 e7 ff ff       	call   0x402944
40422b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40422e:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
404234:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
404238:	8b 45 e8             	mov    -0x18(%ebp),%eax
40423b:	89 18                	mov    %ebx,(%eax)
40423d:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
404241:	8b d3                	mov    %ebx,%edx
404243:	2b d7                	sub    %edi,%edx
404245:	0f af d6             	imul   %esi,%edx
404248:	8b c6                	mov    %esi,%eax
40424a:	0f af c7             	imul   %edi,%eax
40424d:	03 45 e8             	add    -0x18(%ebp),%eax
404250:	33 c9                	xor    %ecx,%ecx
404252:	e8 3d e8 ff ff       	call   0x402a94
404257:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
40425b:	7e 28                	jle    0x404285
40425d:	83 45 08 04          	addl   $0x4,0x8(%ebp)
404261:	ff 4d f4             	decl   -0xc(%ebp)
404264:	4b                   	dec    %ebx
404265:	85 db                	test   %ebx,%ebx
404267:	7c 1c                	jl     0x404285
404269:	43                   	inc    %ebx
40426a:	33 f6                	xor    %esi,%esi
40426c:	8b 45 08             	mov    0x8(%ebp),%eax
40426f:	50                   	push   %eax
404270:	8b 45 e8             	mov    -0x18(%ebp),%eax
404273:	8d 04 b0             	lea    (%eax,%esi,4),%eax
404276:	8b 4d f4             	mov    -0xc(%ebp),%ecx
404279:	8b 55 f8             	mov    -0x8(%ebp),%edx
40427c:	e8 6b fe ff ff       	call   0x4040ec
404281:	46                   	inc    %esi
404282:	4b                   	dec    %ebx
404283:	75 e7                	jne    0x40426c
404285:	8b 45 fc             	mov    -0x4(%ebp),%eax
404288:	8b 55 e8             	mov    -0x18(%ebp),%edx
40428b:	89 10                	mov    %edx,(%eax)
40428d:	5f                   	pop    %edi
40428e:	5e                   	pop    %esi
40428f:	5b                   	pop    %ebx
404290:	8b e5                	mov    %ebp,%esp
404292:	5d                   	pop    %ebp
404293:	c2 04 00             	ret    $0x4
404296:	8b c0                	mov    %eax,%eax
404298:	54                   	push   %esp
404299:	83 04 24 04          	addl   $0x4,(%esp)
40429d:	e8 4a fe ff ff       	call   0x4040ec
4042a2:	c3                   	ret
4042a3:	90                   	nop
4042a4:	8b 08                	mov    (%eax),%ecx
4042a6:	85 c9                	test   %ecx,%ecx
4042a8:	74 33                	je     0x4042dd
4042aa:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4042b0:	f0 ff 49 f8          	lock decl -0x8(%ecx)
4042b4:	75 27                	jne    0x4042dd
4042b6:	50                   	push   %eax
4042b7:	89 c8                	mov    %ecx,%eax
4042b9:	31 c9                	xor    %ecx,%ecx
4042bb:	8a 4a 01             	mov    0x1(%edx),%cl
4042be:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
4042c2:	85 d2                	test   %edx,%edx
4042c4:	74 0e                	je     0x4042d4
4042c6:	8b 48 fc             	mov    -0x4(%eax),%ecx
4042c9:	85 c9                	test   %ecx,%ecx
4042cb:	74 07                	je     0x4042d4
4042cd:	8b 12                	mov    (%edx),%edx
4042cf:	e8 c4 fa ff ff       	call   0x403d98
4042d4:	83 e8 08             	sub    $0x8,%eax
4042d7:	e8 84 e5 ff ff       	call   0x402860
4042dc:	58                   	pop    %eax
4042dd:	c3                   	ret
4042de:	8b c0                	mov    %eax,%eax
4042e0:	53                   	push   %ebx
4042e1:	8b 18                	mov    (%eax),%ebx
4042e3:	85 d2                	test   %edx,%edx
4042e5:	74 04                	je     0x4042eb
4042e7:	f0 ff 42 f8          	lock incl -0x8(%edx)
4042eb:	85 db                	test   %ebx,%ebx
4042ed:	74 14                	je     0x404303
4042ef:	f0 ff 4b f8          	lock decl -0x8(%ebx)
4042f3:	75 0e                	jne    0x404303
4042f5:	50                   	push   %eax
4042f6:	52                   	push   %edx
4042f7:	89 ca                	mov    %ecx,%edx
4042f9:	ff 43 f8             	incl   -0x8(%ebx)
4042fc:	e8 a3 ff ff ff       	call   0x4042a4
404301:	5a                   	pop    %edx
404302:	58                   	pop    %eax
404303:	89 10                	mov    %edx,(%eax)
404305:	5b                   	pop    %ebx
404306:	c3                   	ret
404307:	90                   	nop
404308:	55                   	push   %ebp
404309:	8b ec                	mov    %esp,%ebp
40430b:	83 c4 f8             	add    $0xfffffff8,%esp
40430e:	53                   	push   %ebx
40430f:	56                   	push   %esi
404310:	57                   	push   %edi
404311:	89 45 fc             	mov    %eax,-0x4(%ebp)
404314:	a1 28 60 42 00       	mov    0x426028,%eax
404319:	89 45 f8             	mov    %eax,-0x8(%ebp)
40431c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
404320:	74 39                	je     0x40435b
404322:	33 c0                	xor    %eax,%eax
404324:	55                   	push   %ebp
404325:	68 43 43 40 00       	push   $0x404343
40432a:	64 ff 30             	push   %fs:(%eax)
40432d:	64 89 20             	mov    %esp,%fs:(%eax)
404330:	8b 5d f8             	mov    -0x8(%ebp),%ebx
404333:	8b 45 fc             	mov    -0x4(%ebp),%eax
404336:	ff 53 04             	call   *0x4(%ebx)
404339:	33 c0                	xor    %eax,%eax
40433b:	5a                   	pop    %edx
40433c:	59                   	pop    %ecx
40433d:	59                   	pop    %ecx
40433e:	64 89 10             	mov    %edx,%fs:(%eax)
404341:	eb 0a                	jmp    0x40434d
404343:	e9 94 ec ff ff       	jmp    0x402fdc
404348:	e8 47 ee ff ff       	call   0x403194
40434d:	8b 45 f8             	mov    -0x8(%ebp),%eax
404350:	8b 00                	mov    (%eax),%eax
404352:	89 45 f8             	mov    %eax,-0x8(%ebp)
404355:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
404359:	75 c7                	jne    0x404322
40435b:	5f                   	pop    %edi
40435c:	5e                   	pop    %esi
40435d:	5b                   	pop    %ebx
40435e:	59                   	pop    %ecx
40435f:	59                   	pop    %ecx
404360:	5d                   	pop    %ebp
404361:	c3                   	ret
404362:	8b c0                	mov    %eax,%eax
404364:	8b 15 24 60 42 00    	mov    0x426024,%edx
40436a:	89 10                	mov    %edx,(%eax)
40436c:	a3 24 60 42 00       	mov    %eax,0x426024
404371:	c3                   	ret
404372:	8b c0                	mov    %eax,%eax
404374:	55                   	push   %ebp
404375:	8b ec                	mov    %esp,%ebp
404377:	83 c4 f8             	add    $0xfffffff8,%esp
40437a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40437d:	33 c0                	xor    %eax,%eax
40437f:	55                   	push   %ebp
404380:	68 ed 43 40 00       	push   $0x4043ed
404385:	64 ff 30             	push   %fs:(%eax)
404388:	64 89 20             	mov    %esp,%fs:(%eax)
40438b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40438e:	8b 40 04             	mov    0x4(%eax),%eax
404391:	e8 72 ff ff ff       	call   0x404308
404396:	33 c0                	xor    %eax,%eax
404398:	5a                   	pop    %edx
404399:	59                   	pop    %ecx
40439a:	59                   	pop    %ecx
40439b:	64 89 10             	mov    %edx,%fs:(%eax)
40439e:	68 f4 43 40 00       	push   $0x4043f4
4043a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4043a6:	3b 05 24 60 42 00    	cmp    0x426024,%eax
4043ac:	75 0c                	jne    0x4043ba
4043ae:	8b 45 fc             	mov    -0x4(%ebp),%eax
4043b1:	8b 00                	mov    (%eax),%eax
4043b3:	a3 24 60 42 00       	mov    %eax,0x426024
4043b8:	eb 32                	jmp    0x4043ec
4043ba:	a1 24 60 42 00       	mov    0x426024,%eax
4043bf:	89 45 f8             	mov    %eax,-0x8(%ebp)
4043c2:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4043c6:	74 24                	je     0x4043ec
4043c8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4043cb:	8b 00                	mov    (%eax),%eax
4043cd:	3b 45 fc             	cmp    -0x4(%ebp),%eax
4043d0:	75 0c                	jne    0x4043de
4043d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4043d5:	8b 00                	mov    (%eax),%eax
4043d7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4043da:	89 02                	mov    %eax,(%edx)
4043dc:	eb 0e                	jmp    0x4043ec
4043de:	8b 45 f8             	mov    -0x8(%ebp),%eax
4043e1:	8b 00                	mov    (%eax),%eax
4043e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4043e6:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4043ea:	75 dc                	jne    0x4043c8
4043ec:	c3                   	ret
4043ed:	e9 16 ed ff ff       	jmp    0x403108
4043f2:	eb af                	jmp    0x4043a3
4043f4:	59                   	pop    %ecx
4043f5:	59                   	pop    %ecx
4043f6:	5d                   	pop    %ebp
4043f7:	c3                   	ret
4043f8:	8b 10                	mov    (%eax),%edx
4043fa:	85 d2                	test   %edx,%edx
4043fc:	74 0e                	je     0x40440c
4043fe:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
404404:	50                   	push   %eax
404405:	52                   	push   %edx
404406:	8b 02                	mov    (%edx),%eax
404408:	ff 50 08             	call   *0x8(%eax)
40440b:	58                   	pop    %eax
40440c:	c3                   	ret
40440d:	8d 40 00             	lea    0x0(%eax),%eax
404410:	85 d2                	test   %edx,%edx
404412:	74 19                	je     0x40442d
404414:	52                   	push   %edx
404415:	50                   	push   %eax
404416:	8b 02                	mov    (%edx),%eax
404418:	52                   	push   %edx
404419:	ff 50 04             	call   *0x4(%eax)
40441c:	58                   	pop    %eax
40441d:	8b 08                	mov    (%eax),%ecx
40441f:	8f 00                	pop    (%eax)
404421:	85 c9                	test   %ecx,%ecx
404423:	75 01                	jne    0x404426
404425:	c3                   	ret
404426:	8b 01                	mov    (%ecx),%eax
404428:	51                   	push   %ecx
404429:	ff 50 08             	call   *0x8(%eax)
40442c:	c3                   	ret
40442d:	8b 08                	mov    (%eax),%ecx
40442f:	85 c9                	test   %ecx,%ecx
404431:	89 10                	mov    %edx,(%eax)
404433:	74 06                	je     0x40443b
404435:	8b 01                	mov    (%ecx),%eax
404437:	51                   	push   %ecx
404438:	ff 50 08             	call   *0x8(%eax)
40443b:	c3                   	ret
40443c:	55                   	push   %ebp
40443d:	8b ec                	mov    %esp,%ebp
40443f:	83 c4 f0             	add    $0xfffffff0,%esp
404442:	53                   	push   %ebx
404443:	33 d2                	xor    %edx,%edx
404445:	89 55 f0             	mov    %edx,-0x10(%ebp)
404448:	33 d2                	xor    %edx,%edx
40444a:	55                   	push   %ebp
40444b:	68 a2 44 40 00       	push   $0x4044a2
404450:	64 ff 32             	push   %fs:(%edx)
404453:	64 89 22             	mov    %esp,%fs:(%edx)
404456:	6a 07                	push   $0x7
404458:	8d 55 f5             	lea    -0xb(%ebp),%edx
40445b:	52                   	push   %edx
40445c:	68 04 10 00 00       	push   $0x1004
404461:	50                   	push   %eax
404462:	e8 55 cc ff ff       	call   0x4010bc
404467:	8d 45 f0             	lea    -0x10(%ebp),%eax
40446a:	8d 55 f5             	lea    -0xb(%ebp),%edx
40446d:	b9 07 00 00 00       	mov    $0x7,%ecx
404472:	e8 65 f4 ff ff       	call   0x4038dc
404477:	8b 45 f0             	mov    -0x10(%ebp),%eax
40447a:	8d 55 fc             	lea    -0x4(%ebp),%edx
40447d:	e8 32 e6 ff ff       	call   0x402ab4
404482:	8b d8                	mov    %eax,%ebx
404484:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
404488:	74 02                	je     0x40448c
40448a:	33 db                	xor    %ebx,%ebx
40448c:	33 c0                	xor    %eax,%eax
40448e:	5a                   	pop    %edx
40448f:	59                   	pop    %ecx
404490:	59                   	pop    %ecx
404491:	64 89 10             	mov    %edx,%fs:(%eax)