406379:	ff 75 f8             	push   -0x8(%ebp)
40637c:	e8 ff 02 00 00       	call   0x406680
406381:	8b cf                	mov    %edi,%ecx
406383:	e8 3a f9 ff ff       	call   0x405cc2
406388:	eb 10                	jmp    0x40639a
40638a:	8b cf                	mov    %edi,%ecx
40638c:	e8 1e f9 ff ff       	call   0x405caf
406391:	eb 07                	jmp    0x40639a
406393:	8b cf                	mov    %edi,%ecx
406395:	e8 02 f9 ff ff       	call   0x405c9c
40639a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40639d:	8b 45 18             	mov    0x18(%ebp),%eax
4063a0:	89 06                	mov    %eax,(%esi)
4063a2:	33 c0                	xor    %eax,%eax
4063a4:	89 7e 04             	mov    %edi,0x4(%esi)
4063a7:	40                   	inc    %eax
4063a8:	f0 0f c1 05 d4 97 41 	lock xadd %eax,0x4197d4
4063af:	00
4063b0:	40                   	inc    %eax
4063b1:	89 46 08             	mov    %eax,0x8(%esi)
4063b4:	8b 45 20             	mov    0x20(%ebp),%eax
4063b7:	85 c0                	test   %eax,%eax
4063b9:	74 07                	je     0x4063c2
4063bb:	33 c9                	xor    %ecx,%ecx
4063bd:	66 39 08             	cmp    %cx,(%eax)
4063c0:	75 02                	jne    0x4063c4
4063c2:	33 c0                	xor    %eax,%eax
4063c4:	89 46 0c             	mov    %eax,0xc(%esi)
4063c7:	ff 15 38 b1 41 00    	call   *0x41b138
4063cd:	89 46 10             	mov    %eax,0x10(%esi)
4063d0:	8d 7e 2c             	lea    0x2c(%esi),%edi
4063d3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4063d6:	33 d2                	xor    %edx,%edx
4063d8:	89 46 1c             	mov    %eax,0x1c(%esi)
4063db:	8b 45 e8             	mov    -0x18(%ebp),%eax
4063de:	89 46 20             	mov    %eax,0x20(%esi)
4063e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4063e4:	89 46 24             	mov    %eax,0x24(%esi)
4063e7:	8b 45 f4             	mov    -0xc(%ebp),%eax
4063ea:	89 46 14             	mov    %eax,0x14(%esi)
4063ed:	8b 45 f0             	mov    -0x10(%ebp),%eax
4063f0:	89 46 18             	mov    %eax,0x18(%esi)
4063f3:	8b 45 ec             	mov    -0x14(%ebp),%eax
4063f6:	89 46 48             	mov    %eax,0x48(%esi)
4063f9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4063fc:	89 46 4c             	mov    %eax,0x4c(%esi)
4063ff:	33 c0                	xor    %eax,%eax
406401:	6a 06                	push   $0x6
406403:	59                   	pop    %ecx
406404:	89 56 28             	mov    %edx,0x28(%esi)
406407:	f3 ab                	rep stos %eax,%es:(%edi)
406409:	8b 3d 58 97 41 00    	mov    0x419758,%edi
40640f:	85 ff                	test   %edi,%edi
406411:	74 0a                	je     0x40641d
406413:	8b cf                	mov    %edi,%ecx
406415:	ff 15 90 b3 41 00    	call   *0x41b390
40641b:	ff d7                	call   *%edi
40641d:	8b 3d 34 97 41 00    	mov    0x419734,%edi
406423:	89 46 44             	mov    %eax,0x44(%esi)
406426:	85 ff                	test   %edi,%edi
406428:	74 13                	je     0x40643d
40642a:	68 00 04 00 00       	push   $0x400
40642f:	ff 75 e0             	push   -0x20(%ebp)
406432:	8b cf                	mov    %edi,%ecx
406434:	56                   	push   %esi
406435:	ff 15 90 b3 41 00    	call   *0x41b390
40643b:	ff d7                	call   *%edi
40643d:	8b 3d 2c 97 41 00    	mov    0x41972c,%edi
406443:	85 ff                	test   %edi,%edi
406445:	74 0b                	je     0x406452
406447:	56                   	push   %esi
406448:	8b cf                	mov    %edi,%ecx
40644a:	ff 15 90 b3 41 00    	call   *0x41b390
406450:	ff d7                	call   *%edi
406452:	8b 3d 48 97 41 00    	mov    0x419748,%edi
406458:	85 ff                	test   %edi,%edi
40645a:	74 0b                	je     0x406467
40645c:	56                   	push   %esi
40645d:	8b cf                	mov    %edi,%ecx
40645f:	ff 15 90 b3 41 00    	call   *0x41b390
406465:	ff d7                	call   *%edi
406467:	33 c0                	xor    %eax,%eax
406469:	39 46 04             	cmp    %eax,0x4(%esi)
40646c:	7c 11                	jl     0x40647f
40646e:	83 7d 18 03          	cmpl   $0x3,0x18(%ebp)
406472:	0f 85 bc 00 00 00    	jne    0x406534
406478:	c7 46 04 ff ff 00 80 	movl   $0x8000ffff,0x4(%esi)
40647f:	38 05 14 97 41 00    	cmp    %al,0x419714
406485:	75 4a                	jne    0x4064d1
406487:	8b 3d 0c 97 41 00    	mov    0x41970c,%edi
40648d:	85 ff                	test   %edi,%edi
40648f:	74 0f                	je     0x4064a0
406491:	8b cf                	mov    %edi,%ecx
406493:	ff 15 90 b3 41 00    	call   *0x41b390
406499:	ff d7                	call   *%edi
40649b:	0f b6 c0             	movzbl %al,%eax
40649e:	eb 0c                	jmp    0x4064ac
4064a0:	ff 15 74 b1 41 00    	call   *0x41b174
4064a6:	f7 d8                	neg    %eax
4064a8:	1b c0                	sbb    %eax,%eax
4064aa:	f7 d8                	neg    %eax
4064ac:	85 c0                	test   %eax,%eax
4064ae:	75 21                	jne    0x4064d1
4064b0:	8b 3d 18 97 41 00    	mov    0x419718,%edi
4064b6:	85 ff                	test   %edi,%edi
4064b8:	74 56                	je     0x406510
4064ba:	38 05 24 97 41 00    	cmp    %al,0x419724
4064c0:	75 4e                	jne    0x406510
4064c2:	50                   	push   %eax
4064c3:	50                   	push   %eax
4064c4:	56                   	push   %esi
4064c5:	8b cf                	mov    %edi,%ecx
4064c7:	ff 15 90 b3 41 00    	call   *0x41b390
4064cd:	ff d7                	call   *%edi
4064cf:	eb 3f                	jmp    0x406510
4064d1:	8b 3d 18 97 41 00    	mov    0x419718,%edi
4064d7:	85 ff                	test   %edi,%edi
4064d9:	74 1a                	je     0x4064f5
4064db:	80 3d 24 97 41 00 00 	cmpb   $0x0,0x419724
4064e2:	75 11                	jne    0x4064f5
4064e4:	68 00 08 00 00       	push   $0x800
4064e9:	53                   	push   %ebx
4064ea:	56                   	push   %esi
4064eb:	8b cf                	mov    %edi,%ecx
4064ed:	ff 15 90 b3 41 00    	call   *0x41b390
4064f3:	ff d7                	call   *%edi
4064f5:	33 c0                	xor    %eax,%eax
4064f7:	66 39 03             	cmp    %ax,(%ebx)
4064fa:	75 0d                	jne    0x406509
4064fc:	56                   	push   %esi
4064fd:	ba 00 08 00 00       	mov    $0x800,%edx
406502:	8b cb                	mov    %ebx,%ecx
406504:	e8 8d f4 ff ff       	call   0x405996
406509:	53                   	push   %ebx
40650a:	ff 15 48 b1 41 00    	call   *0x41b148
406510:	80 3d 1c 97 41 00 00 	cmpb   $0x0,0x41971c
406517:	74 14                	je     0x40652d
406519:	8b 35 3c 97 41 00    	mov    0x41973c,%esi
40651f:	85 f6                	test   %esi,%esi
406521:	74 0a                	je     0x40652d
406523:	8b ce                	mov    %esi,%ecx
406525:	ff 15 90 b3 41 00    	call   *0x41b390
40652b:	ff d6                	call   *%esi
40652d:	5f                   	pop    %edi
40652e:	5e                   	pop    %esi
40652f:	5b                   	pop    %ebx
406530:	c9                   	leave
406531:	c2 34 00             	ret    $0x34
406534:	e8 7e 02 00 00       	call   0x4067b7
406539:	cc                   	int3
40653a:	8b ff                	mov    %edi,%edi
40653c:	55                   	push   %ebp
40653d:	8b ec                	mov    %esp,%ebp
40653f:	83 ec 50             	sub    $0x50,%esp
406542:	56                   	push   %esi
406543:	57                   	push   %edi
406544:	8b 3d 60 97 41 00    	mov    0x419760,%edi
40654a:	8b f1                	mov    %ecx,%esi
40654c:	85 ff                	test   %edi,%edi
40654e:	74 0b                	je     0x40655b
406550:	56                   	push   %esi
406551:	8b cf                	mov    %edi,%ecx
406553:	ff 15 90 b3 41 00    	call   *0x41b390
406559:	ff d7                	call   *%edi
40655b:	6a 50                	push   $0x50
40655d:	8d 45 b0             	lea    -0x50(%ebp),%eax
406560:	6a 00                	push   $0x0
406562:	50                   	push   %eax
406563:	e8 f9 db 00 00       	call   0x414161
406568:	8b 4e 48             	mov    0x48(%esi),%ecx
40656b:	33 c0                	xor    %eax,%eax
40656d:	40                   	inc    %eax
40656e:	c7 45 b0 09 04 00 c0 	movl   $0xc0000409,-0x50(%ebp)
406575:	83 c4 0c             	add    $0xc,%esp
406578:	89 45 c0             	mov    %eax,-0x40(%ebp)
40657b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40657e:	c7 45 c4 07 00 00 00 	movl   $0x7,-0x3c(%ebp)
406585:	85 c9                	test   %ecx,%ecx
406587:	75 09                	jne    0x406592
406589:	50                   	push   %eax
40658a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40658d:	e8 62 f7 ff ff       	call   0x405cf4
406592:	8b 46 04             	mov    0x4(%esi),%eax
406595:	89 45 c8             	mov    %eax,-0x38(%ebp)
406598:	8b 46 20             	mov    0x20(%esi),%eax
40659b:	c7 45 c0 03 00 00 00 	movl   $0x3,-0x40(%ebp)
4065a2:	89 45 cc             	mov    %eax,-0x34(%ebp)
4065a5:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4065a8:	6a 00                	push   $0x0
4065aa:	eb de                	jmp    0x40658a
4065ac:	8b ff                	mov    %edi,%edi
4065ae:	55                   	push   %ebp
4065af:	8b ec                	mov    %esp,%ebp
4065b1:	83 e4 f8             	and    $0xfffffff8,%esp
4065b4:	b8 64 14 00 00       	mov    $0x1464,%eax
4065b9:	e8 72 db 00 00       	call   0x414130
4065be:	a1 18 51 41 00       	mov    0x415118,%eax
4065c3:	33 c4                	xor    %esp,%eax
4065c5:	89 84 24 60 14 00 00 	mov    %eax,0x1460(%esp)
4065cc:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4065d0:	8b 45 08             	mov    0x8(%ebp),%eax
4065d3:	53                   	push   %ebx
4065d4:	8b 5d 10             	mov    0x10(%ebp),%ebx
4065d7:	56                   	push   %esi
4065d8:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4065dc:	8b 5d 14             	mov    0x14(%ebp),%ebx
4065df:	57                   	push   %edi
4065e0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4065e3:	89 5c 24 10          	mov    %ebx,0x10(%esp)
4065e7:	75 0d                	jne    0x4065f6
4065e9:	83 3d 40 97 41 00 00 	cmpl   $0x0,0x419740
4065f0:	74 04                	je     0x4065f6
4065f2:	b3 01                	mov    $0x1,%bl
4065f4:	eb 02                	jmp    0x4065f8
4065f6:	32 db                	xor    %bl,%bl
4065f8:	8d 74 24 18          	lea    0x18(%esp),%esi
4065fc:	56                   	push   %esi
4065fd:	51                   	push   %ecx
4065fe:	8d 74 24 70          	lea    0x70(%esp),%esi
406602:	56                   	push   %esi
406603:	51                   	push   %ecx
406604:	8d b4 24 78 04 00 00 	lea    0x478(%esp),%esi
40660b:	56                   	push   %esi
40660c:	8b 75 18             	mov    0x18(%ebp),%esi
40660f:	51                   	push   %ecx
406610:	ff 75 20             	push   0x20(%ebp)
406613:	ff 75 1c             	push   0x1c(%ebp)
406616:	56                   	push   %esi
406617:	ff 74 24 34          	push   0x34(%esp)
40661b:	ff 74 24 3c          	push   0x3c(%esp)
40661f:	57                   	push   %edi
406620:	50                   	push   %eax
406621:	e8 db fc ff ff       	call   0x406301
406626:	83 fe 03             	cmp    $0x3,%esi
406629:	74 4b                	je     0x406676
40662b:	85 f6                	test   %esi,%esi
40662d:	75 30                	jne    0x40665f
40662f:	84 db                	test   %bl,%bl
406631:	74 1d                	je     0x406650
406633:	8b 35 40 97 41 00    	mov    0x419740,%esi
406639:	8d 84 24 68 04 00 00 	lea    0x468(%esp),%eax
406640:	50                   	push   %eax
406641:	8d 44 24 1c          	lea    0x1c(%esp),%eax
406645:	8b ce                	mov    %esi,%ecx
406647:	50                   	push   %eax
406648:	ff 15 90 b3 41 00    	call   *0x41b390
40664e:	ff d6                	call   *%esi
406650:	8d 4c 24 18          	lea    0x18(%esp),%ecx
406654:	e8 f5 fb ff ff       	call   0x40624e
406659:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40665d:	eb 1b                	jmp    0x40667a
40665f:	8b 8c 24 6c 14 00 00 	mov    0x146c(%esp),%ecx
406666:	5f                   	pop    %edi
406667:	5e                   	pop    %esi
406668:	5b                   	pop    %ebx
406669:	33 cc                	xor    %esp,%ecx
40666b:	e8 70 d2 00 00       	call   0x4138e0
406670:	8b e5                	mov    %ebp,%esp
406672:	5d                   	pop    %ebp
406673:	c2 20 00             	ret    $0x20
406676:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40667a:	e8 bb fe ff ff       	call   0x40653a
40667f:	cc                   	int3
406680:	8b ff                	mov    %edi,%edi
406682:	55                   	push   %ebp
406683:	8b ec                	mov    %esp,%ebp
406685:	83 e4 f8             	and    $0xfffffff8,%esp
406688:	51                   	push   %ecx
406689:	6a 00                	push   $0x0
40668b:	ff 75 1c             	push   0x1c(%ebp)
40668e:	ff 75 18             	push   0x18(%ebp)
406691:	ff 75 14             	push   0x14(%ebp)
406694:	ff 75 10             	push   0x10(%ebp)
406697:	ff 75 0c             	push   0xc(%ebp)
40669a:	ff 75 08             	push   0x8(%ebp)
40669d:	e8 0a ff ff ff       	call   0x4065ac
4066a2:	8b e5                	mov    %ebp,%esp
4066a4:	5d                   	pop    %ebp
4066a5:	c2 18 00             	ret    $0x18
4066a8:	8b ff                	mov    %edi,%edi
4066aa:	55                   	push   %ebp
4066ab:	8b ec                	mov    %esp,%ebp
4066ad:	53                   	push   %ebx
4066ae:	56                   	push   %esi
4066af:	57                   	push   %edi
4066b0:	ff 75 14             	push   0x14(%ebp)
4066b3:	8b fa                	mov    %edx,%edi
4066b5:	8b d9                	mov    %ecx,%ebx
4066b7:	51                   	push   %ecx
4066b8:	51                   	push   %ecx
4066b9:	68 cc 26 40 00       	push   $0x4026cc
4066be:	e8 b8 f7 ff ff       	call   0x405e7b
4066c3:	8b f0                	mov    %eax,%esi
4066c5:	85 f6                	test   %esi,%esi
4066c7:	7f 04                	jg     0x4066cd
4066c9:	8b ce                	mov    %esi,%ecx
4066cb:	eb 09                	jmp    0x4066d6
4066cd:	0f b7 ce             	movzwl %si,%ecx
4066d0:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
4066d6:	51                   	push   %ecx
4066d7:	33 c0                	xor    %eax,%eax
4066d9:	8b d7                	mov    %edi,%edx
4066db:	50                   	push   %eax
4066dc:	51                   	push   %ecx
4066dd:	6a 03                	push   $0x3
4066df:	ff 75 14             	push   0x14(%ebp)
4066e2:	8b cb                	mov    %ebx,%ecx
4066e4:	50                   	push   %eax
4066e5:	50                   	push   %eax
4066e6:	68 cc 26 40 00       	push   $0x4026cc
4066eb:	e8 bc fe ff ff       	call   0x4065ac
4066f0:	5f                   	pop    %edi
4066f1:	8b c6                	mov    %esi,%eax
4066f3:	5e                   	pop    %esi
4066f4:	5b                   	pop    %ebx
4066f5:	5d                   	pop    %ebp
4066f6:	c2 14 00             	ret    $0x14
4066f9:	8b ff                	mov    %edi,%edi
4066fb:	55                   	push   %ebp
4066fc:	8b ec                	mov    %esp,%ebp
4066fe:	53                   	push   %ebx
4066ff:	56                   	push   %esi
406700:	57                   	push   %edi
406701:	ff 75 14             	push   0x14(%ebp)
406704:	8b fa                	mov    %edx,%edi
406706:	8b d9                	mov    %ecx,%ebx
406708:	51                   	push   %ecx
406709:	51                   	push   %ecx
40670a:	68 c8 26 40 00       	push   $0x4026c8
40670f:	e8 67 f7 ff ff       	call   0x405e7b
406714:	8b f0                	mov    %eax,%esi
406716:	85 f6                	test   %esi,%esi
406718:	7e 09                	jle    0x406723
40671a:	0f b7 f6             	movzwl %si,%esi
40671d:	81 ce 00 00 07 80    	or     $0x80070000,%esi
406723:	51                   	push   %ecx
406724:	33 c0                	xor    %eax,%eax
406726:	8b d7                	mov    %edi,%edx
406728:	50                   	push   %eax
406729:	56                   	push   %esi
40672a:	6a 01                	push   $0x1
40672c:	ff 75 14             	push   0x14(%ebp)
40672f:	8b cb                	mov    %ebx,%ecx
406731:	50                   	push   %eax
406732:	50                   	push   %eax
406733:	68 c8 26 40 00       	push   $0x4026c8
406738:	e8 6f fe ff ff       	call   0x4065ac
40673d:	5f                   	pop    %edi
40673e:	8b c6                	mov    %esi,%eax
406740:	5e                   	pop    %esi