4071b4:	6a 08                	push   $0x8
4071b6:	68 58 4b 41 00       	push   $0x414b58
4071bb:	e8 50 c2 ff ff       	call   0x403410
4071c0:	8b 45 08             	mov    0x8(%ebp),%eax
4071c3:	ff 30                	push   (%eax)
4071c5:	e8 02 06 00 00       	call   0x4077cc
4071ca:	59                   	pop    %ecx
4071cb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4071cf:	8b 45 0c             	mov    0xc(%ebp),%eax
4071d2:	8b 00                	mov    (%eax),%eax
4071d4:	8b 00                	mov    (%eax),%eax
4071d6:	8b 48 48             	mov    0x48(%eax),%ecx
4071d9:	85 c9                	test   %ecx,%ecx
4071db:	74 18                	je     0x4071f5
4071dd:	83 c8 ff             	or     $0xffffffff,%eax
4071e0:	f0 0f c1 01          	lock xadd %eax,(%ecx)
4071e4:	75 0f                	jne    0x4071f5
4071e6:	81 f9 28 61 41 00    	cmp    $0x416128,%ecx
4071ec:	74 07                	je     0x4071f5
4071ee:	51                   	push   %ecx
4071ef:	e8 85 06 00 00       	call   0x407879
4071f4:	59                   	pop    %ecx
4071f5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4071fc:	e8 12 00 00 00       	call   0x407213
407201:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407204:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40720b:	59                   	pop    %ecx
40720c:	5f                   	pop    %edi
40720d:	5e                   	pop    %esi
40720e:	5b                   	pop    %ebx
40720f:	c9                   	leave
407210:	c2 0c 00             	ret    $0xc
407213:	8b 45 10             	mov    0x10(%ebp),%eax
407216:	ff 30                	push   (%eax)
407218:	e8 f7 05 00 00       	call   0x407814
40721d:	59                   	pop    %ecx
40721e:	c3                   	ret
40721f:	6a 08                	push   $0x8
407221:	68 78 4b 41 00       	push   $0x414b78
407226:	e8 e5 c1 ff ff       	call   0x403410
40722b:	8b 45 08             	mov    0x8(%ebp),%eax
40722e:	ff 30                	push   (%eax)
407230:	e8 97 05 00 00       	call   0x4077cc
407235:	59                   	pop    %ecx
407236:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40723a:	6a 00                	push   $0x0
40723c:	8b 45 0c             	mov    0xc(%ebp),%eax
40723f:	8b 00                	mov    (%eax),%eax
407241:	ff 30                	push   (%eax)
407243:	e8 0d 02 00 00       	call   0x407455
407248:	59                   	pop    %ecx
407249:	59                   	pop    %ecx
40724a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407251:	e8 12 00 00 00       	call   0x407268
407256:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407259:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407260:	59                   	pop    %ecx
407261:	5f                   	pop    %edi
407262:	5e                   	pop    %esi
407263:	5b                   	pop    %ebx
407264:	c9                   	leave
407265:	c2 0c 00             	ret    $0xc
407268:	8b 45 10             	mov    0x10(%ebp),%eax
40726b:	ff 30                	push   (%eax)
40726d:	e8 a2 05 00 00       	call   0x407814
407272:	59                   	pop    %ecx
407273:	c3                   	ret
407274:	6a 08                	push   $0x8
407276:	68 38 4b 41 00       	push   $0x414b38
40727b:	e8 90 c1 ff ff       	call   0x403410
407280:	8b 45 08             	mov    0x8(%ebp),%eax
407283:	ff 30                	push   (%eax)
407285:	e8 42 05 00 00       	call   0x4077cc
40728a:	59                   	pop    %ecx
40728b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40728f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407292:	8b 41 04             	mov    0x4(%ecx),%eax
407295:	8b 00                	mov    (%eax),%eax
407297:	ff 30                	push   (%eax)
407299:	8b 01                	mov    (%ecx),%eax
40729b:	ff 30                	push   (%eax)
40729d:	e8 b3 01 00 00       	call   0x407455
4072a2:	59                   	pop    %ecx
4072a3:	59                   	pop    %ecx
4072a4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4072ab:	e8 12 00 00 00       	call   0x4072c2
4072b0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4072b3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4072ba:	59                   	pop    %ecx
4072bb:	5f                   	pop    %edi
4072bc:	5e                   	pop    %esi
4072bd:	5b                   	pop    %ebx
4072be:	c9                   	leave
4072bf:	c2 0c 00             	ret    $0xc
4072c2:	8b 45 10             	mov    0x10(%ebp),%eax
4072c5:	ff 30                	push   (%eax)
4072c7:	e8 48 05 00 00       	call   0x407814
4072cc:	59                   	pop    %ecx
4072cd:	c3                   	ret
4072ce:	8b ff                	mov    %edi,%edi
4072d0:	55                   	push   %ebp
4072d1:	8b ec                	mov    %esp,%ebp
4072d3:	83 ec 14             	sub    $0x14,%esp
4072d6:	8b 45 08             	mov    0x8(%ebp),%eax
4072d9:	33 c9                	xor    %ecx,%ecx
4072db:	41                   	inc    %ecx
4072dc:	6a 43                	push   $0x43
4072de:	89 48 18             	mov    %ecx,0x18(%eax)
4072e1:	8b 45 08             	mov    0x8(%ebp),%eax
4072e4:	c7 00 c8 fc 40 00    	movl   $0x40fcc8,(%eax)
4072ea:	8b 45 08             	mov    0x8(%ebp),%eax
4072ed:	89 88 50 03 00 00    	mov    %ecx,0x350(%eax)
4072f3:	8b 45 08             	mov    0x8(%ebp),%eax
4072f6:	59                   	pop    %ecx
4072f7:	6a 05                	push   $0x5
4072f9:	c7 40 48 28 61 41 00 	movl   $0x416128,0x48(%eax)
407300:	8b 45 08             	mov    0x8(%ebp),%eax
407303:	66 89 48 6c          	mov    %cx,0x6c(%eax)
407307:	8b 45 08             	mov    0x8(%ebp),%eax
40730a:	66 89 88 72 01 00 00 	mov    %cx,0x172(%eax)
407311:	8d 4d ff             	lea    -0x1(%ebp),%ecx
407314:	8b 45 08             	mov    0x8(%ebp),%eax
407317:	83 a0 4c 03 00 00 00 	andl   $0x0,0x34c(%eax)
40731e:	8d 45 08             	lea    0x8(%ebp),%eax
407321:	89 45 f0             	mov    %eax,-0x10(%ebp)
407324:	58                   	pop    %eax
407325:	89 45 f8             	mov    %eax,-0x8(%ebp)
407328:	89 45 ec             	mov    %eax,-0x14(%ebp)
40732b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40732e:	50                   	push   %eax
40732f:	8d 45 f0             	lea    -0x10(%ebp),%eax
407332:	50                   	push   %eax
407333:	8d 45 ec             	lea    -0x14(%ebp),%eax
407336:	50                   	push   %eax
407337:	e8 26 fe ff ff       	call   0x407162
40733c:	8d 45 08             	lea    0x8(%ebp),%eax
40733f:	89 45 f4             	mov    %eax,-0xc(%ebp)
407342:	8d 4d ff             	lea    -0x1(%ebp),%ecx
407345:	6a 04                	push   $0x4
407347:	8d 45 0c             	lea    0xc(%ebp),%eax
40734a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40734d:	58                   	pop    %eax
40734e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407351:	89 45 f0             	mov    %eax,-0x10(%ebp)
407354:	8d 45 ec             	lea    -0x14(%ebp),%eax
407357:	50                   	push   %eax
407358:	8d 45 f4             	lea    -0xc(%ebp),%eax
40735b:	50                   	push   %eax
40735c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40735f:	50                   	push   %eax
407360:	e8 0f ff ff ff       	call   0x407274
407365:	c9                   	leave
407366:	c3                   	ret
407367:	8b ff                	mov    %edi,%edi
407369:	55                   	push   %ebp
40736a:	8b ec                	mov    %esp,%ebp
40736c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407370:	74 12                	je     0x407384
407372:	ff 75 08             	push   0x8(%ebp)
407375:	e8 0e 00 00 00       	call   0x407388
40737a:	ff 75 08             	push   0x8(%ebp)
40737d:	e8 f7 04 00 00       	call   0x407879
407382:	59                   	pop    %ecx
407383:	59                   	pop    %ecx
407384:	5d                   	pop    %ebp
407385:	c2 04 00             	ret    $0x4
407388:	8b ff                	mov    %edi,%edi
40738a:	55                   	push   %ebp
40738b:	8b ec                	mov    %esp,%ebp
40738d:	8b 45 08             	mov    0x8(%ebp),%eax
407390:	83 ec 10             	sub    $0x10,%esp
407393:	8b 08                	mov    (%eax),%ecx
407395:	81 f9 c8 fc 40 00    	cmp    $0x40fcc8,%ecx
40739b:	74 0a                	je     0x4073a7
40739d:	51                   	push   %ecx
40739e:	e8 d6 04 00 00       	call   0x407879
4073a3:	8b 45 08             	mov    0x8(%ebp),%eax
4073a6:	59                   	pop    %ecx
4073a7:	ff 70 3c             	push   0x3c(%eax)
4073aa:	e8 ca 04 00 00       	call   0x407879
4073af:	8b 45 08             	mov    0x8(%ebp),%eax
4073b2:	ff 70 30             	push   0x30(%eax)
4073b5:	e8 bf 04 00 00       	call   0x407879
4073ba:	8b 45 08             	mov    0x8(%ebp),%eax
4073bd:	ff 70 34             	push   0x34(%eax)
4073c0:	e8 b4 04 00 00       	call   0x407879
4073c5:	8b 45 08             	mov    0x8(%ebp),%eax
4073c8:	ff 70 38             	push   0x38(%eax)
4073cb:	e8 a9 04 00 00       	call   0x407879
4073d0:	8b 45 08             	mov    0x8(%ebp),%eax
4073d3:	ff 70 28             	push   0x28(%eax)
4073d6:	e8 9e 04 00 00       	call   0x407879
4073db:	8b 45 08             	mov    0x8(%ebp),%eax
4073de:	ff 70 2c             	push   0x2c(%eax)
4073e1:	e8 93 04 00 00       	call   0x407879
4073e6:	8b 45 08             	mov    0x8(%ebp),%eax
4073e9:	ff 70 40             	push   0x40(%eax)
4073ec:	e8 88 04 00 00       	call   0x407879
4073f1:	8b 45 08             	mov    0x8(%ebp),%eax
4073f4:	ff 70 44             	push   0x44(%eax)
4073f7:	e8 7d 04 00 00       	call   0x407879
4073fc:	8b 45 08             	mov    0x8(%ebp),%eax
4073ff:	ff b0 60 03 00 00    	push   0x360(%eax)
407405:	e8 6f 04 00 00       	call   0x407879
40740a:	83 c4 24             	add    $0x24,%esp
40740d:	8d 45 08             	lea    0x8(%ebp),%eax
407410:	89 45 f4             	mov    %eax,-0xc(%ebp)
407413:	8d 4d ff             	lea    -0x1(%ebp),%ecx
407416:	6a 05                	push   $0x5
407418:	58                   	pop    %eax
407419:	89 45 f8             	mov    %eax,-0x8(%ebp)
40741c:	89 45 f0             	mov    %eax,-0x10(%ebp)
40741f:	8d 45 f8             	lea    -0x8(%ebp),%eax
407422:	50                   	push   %eax
407423:	8d 45 f4             	lea    -0xc(%ebp),%eax
407426:	50                   	push   %eax
407427:	8d 45 f0             	lea    -0x10(%ebp),%eax
40742a:	50                   	push   %eax
40742b:	e8 84 fd ff ff       	call   0x4071b4
407430:	6a 04                	push   $0x4
407432:	8d 45 08             	lea    0x8(%ebp),%eax
407435:	89 45 f4             	mov    %eax,-0xc(%ebp)
407438:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40743b:	58                   	pop    %eax
40743c:	89 45 f0             	mov    %eax,-0x10(%ebp)
40743f:	89 45 f8             	mov    %eax,-0x8(%ebp)
407442:	8d 45 f0             	lea    -0x10(%ebp),%eax
407445:	50                   	push   %eax
407446:	8d 45 f4             	lea    -0xc(%ebp),%eax
407449:	50                   	push   %eax
40744a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40744d:	50                   	push   %eax
40744e:	e8 cc fd ff ff       	call   0x40721f
407453:	c9                   	leave
407454:	c3                   	ret
407455:	8b ff                	mov    %edi,%edi
407457:	55                   	push   %ebp
407458:	8b ec                	mov    %esp,%ebp
40745a:	56                   	push   %esi
40745b:	8b 75 08             	mov    0x8(%ebp),%esi
40745e:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
407462:	74 28                	je     0x40748c
407464:	ff 76 4c             	push   0x4c(%esi)
407467:	e8 d1 25 00 00       	call   0x409a3d
40746c:	8b 46 4c             	mov    0x4c(%esi),%eax
40746f:	59                   	pop    %ecx
407470:	3b 05 ec 6e 41 00    	cmp    0x416eec,%eax
407476:	74 14                	je     0x40748c
407478:	3d 58 60 41 00       	cmp    $0x416058,%eax
40747d:	74 0d                	je     0x40748c
40747f:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
407483:	75 07                	jne    0x40748c
407485:	50                   	push   %eax
407486:	e8 e7 23 00 00       	call   0x409872
40748b:	59                   	pop    %ecx
40748c:	8b 45 0c             	mov    0xc(%ebp),%eax
40748f:	89 46 4c             	mov    %eax,0x4c(%esi)
407492:	5e                   	pop    %esi
407493:	85 c0                	test   %eax,%eax
407495:	74 07                	je     0x40749e
407497:	50                   	push   %eax
407498:	e8 58 23 00 00       	call   0x4097f5
40749d:	59                   	pop    %ecx
40749e:	5d                   	pop    %ebp
40749f:	c3                   	ret
4074a0:	8b ff                	mov    %edi,%edi
4074a2:	53                   	push   %ebx
4074a3:	57                   	push   %edi
4074a4:	ff 15 58 f0 40 00    	call   *0x40f058
4074aa:	8b f8                	mov    %eax,%edi
4074ac:	a1 50 60 41 00       	mov    0x416050,%eax
4074b1:	83 f8 ff             	cmp    $0xffffffff,%eax
4074b4:	74 1a                	je     0x4074d0
4074b6:	50                   	push   %eax
4074b7:	e8 4e 29 00 00       	call   0x409e0a
4074bc:	85 c0                	test   %eax,%eax
4074be:	74 0b                	je     0x4074cb
4074c0:	8d 58 01             	lea    0x1(%eax),%ebx
4074c3:	f7 db                	neg    %ebx
4074c5:	1b db                	sbb    %ebx,%ebx
4074c7:	23 d8                	and    %eax,%ebx
4074c9:	eb 7a                	jmp    0x407545
4074cb:	a1 50 60 41 00       	mov    0x416050,%eax
4074d0:	6a ff                	push   $0xffffffff
4074d2:	50                   	push   %eax
4074d3:	e8 71 29 00 00       	call   0x409e49
4074d8:	85 c0                	test   %eax,%eax
4074da:	75 04                	jne    0x4074e0
4074dc:	33 db                	xor    %ebx,%ebx
4074de:	eb 65                	jmp    0x407545
4074e0:	56                   	push   %esi
4074e1:	68 64 03 00 00       	push   $0x364
4074e6:	6a 01                	push   $0x1
4074e8:	e8 76 04 00 00       	call   0x407963
4074ed:	8b f0                	mov    %eax,%esi
4074ef:	59                   	pop    %ecx
4074f0:	59                   	pop    %ecx
4074f1:	85 f6                	test   %esi,%esi
4074f3:	75 11                	jne    0x407506
4074f5:	33 db                	xor    %ebx,%ebx
4074f7:	53                   	push   %ebx
4074f8:	ff 35 50 60 41 00    	push   0x416050
4074fe:	e8 46 29 00 00       	call   0x409e49
407503:	53                   	push   %ebx
407504:	eb 1f                	jmp    0x407525
407506:	56                   	push   %esi
407507:	ff 35 50 60 41 00    	push   0x416050
40750d:	e8 37 29 00 00       	call   0x409e49
407512:	85 c0                	test   %eax,%eax
407514:	75 17                	jne    0x40752d
407516:	33 db                	xor    %ebx,%ebx
407518:	53                   	push   %ebx
407519:	ff 35 50 60 41 00    	push   0x416050
40751f:	e8 25 29 00 00       	call   0x409e49
407524:	56                   	push   %esi
407525:	e8 4f 03 00 00       	call   0x407879
40752a:	59                   	pop    %ecx
40752b:	eb 17                	jmp    0x407544
40752d:	68 ec 6e 41 00       	push   $0x416eec
407532:	56                   	push   %esi
407533:	e8 96 fd ff ff       	call   0x4072ce
407538:	6a 00                	push   $0x0
40753a:	e8 3a 03 00 00       	call   0x407879
40753f:	83 c4 0c             	add    $0xc,%esp
407542:	8b de                	mov    %esi,%ebx
407544:	5e                   	pop    %esi
407545:	57                   	push   %edi
407546:	ff 15 5c f0 40 00    	call   *0x40f05c
40754c:	85 db                	test   %ebx,%ebx
40754e:	74 05                	je     0x407555
407550:	5f                   	pop    %edi
407551:	8b c3                	mov    %ebx,%eax
407553:	5b                   	pop    %ebx
407554:	c3                   	ret
407555:	e8 44 fa ff ff       	call   0x406f9e
40755a:	cc                   	int3
40755b:	a1 50 60 41 00       	mov    0x416050,%eax
407560:	56                   	push   %esi
407561:	83 f8 ff             	cmp    $0xffffffff,%eax
407564:	74 18                	je     0x40757e
407566:	50                   	push   %eax
407567:	e8 9e 28 00 00       	call   0x409e0a
40756c:	8b f0                	mov    %eax,%esi
40756e:	85 f6                	test   %esi,%esi
407570:	74 07                	je     0x407579
407572:	83 fe ff             	cmp    $0xffffffff,%esi
407575:	74 74                	je     0x4075eb
407577:	eb 6e                	jmp    0x4075e7
407579:	a1 50 60 41 00       	mov    0x416050,%eax
40757e:	6a ff                	push   $0xffffffff