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
406741:	5b                   	pop    %ebx
406742:	5d                   	pop    %ebp
406743:	c2 14 00             	ret    $0x14
406746:	8b ff                	mov    %edi,%edi
406748:	55                   	push   %ebp
406749:	8b ec                	mov    %esp,%ebp
40674b:	ff 75 0c             	push   0xc(%ebp)
40674e:	6a 01                	push   $0x1
406750:	ff 75 04             	push   0x4(%ebp)
406753:	6a 00                	push   $0x0
406755:	6a 00                	push   $0x0
406757:	68 c8 26 40 00       	push   $0x4026c8
40675c:	e8 1f ff ff ff       	call   0x406680
406761:	5d                   	pop    %ebp
406762:	c2 08 00             	ret    $0x8
406765:	8b ff                	mov    %edi,%edi
406767:	55                   	push   %ebp
406768:	8b ec                	mov    %esp,%ebp
40676a:	51                   	push   %ecx
40676b:	51                   	push   %ecx
40676c:	ff 75 04             	push   0x4(%ebp)
40676f:	83 ec 0c             	sub    $0xc,%esp
406772:	e8 82 ff ff ff       	call   0x4066f9
406777:	59                   	pop    %ecx
406778:	5d                   	pop    %ebp
406779:	c2 04 00             	ret    $0x4
40677c:	8b ff                	mov    %edi,%edi
40677e:	55                   	push   %ebp
40677f:	8b ec                	mov    %esp,%ebp
406781:	51                   	push   %ecx
406782:	ff 75 04             	push   0x4(%ebp)
406785:	83 ec 0c             	sub    $0xc,%esp
406788:	e8 1b ff ff ff       	call   0x4066a8
40678d:	5d                   	pop    %ebp
40678e:	c2 04 00             	ret    $0x4
406791:	8b ff                	mov    %edi,%edi
406793:	55                   	push   %ebp
406794:	8b ec                	mov    %esp,%ebp
406796:	68 ff ff 00 80       	push   $0x8000ffff
40679b:	6a 03                	push   $0x3
40679d:	ff 75 04             	push   0x4(%ebp)
4067a0:	ba 4c 0b 00 00       	mov    $0xb4c,%edx
4067a5:	6a 00                	push   $0x0
4067a7:	6a 00                	push   $0x0
4067a9:	68 cc 26 40 00       	push   $0x4026cc
4067ae:	e8 cd fe ff ff       	call   0x406680
4067b3:	5d                   	pop    %ebp
4067b4:	c2 04 00             	ret    $0x4
4067b7:	6a 07                	push   $0x7
4067b9:	59                   	pop    %ecx
4067ba:	cd 29                	int    $0x29
4067bc:	c3                   	ret
4067bd:	80 39 00             	cmpb   $0x0,(%ecx)
4067c0:	75 09                	jne    0x4067cb
4067c2:	ff 71 04             	push   0x4(%ecx)
4067c5:	ff 15 2c b1 41 00    	call   *0x41b12c
4067cb:	c3                   	ret
4067cc:	8b ff                	mov    %edi,%edi
4067ce:	55                   	push   %ebp
4067cf:	8b ec                	mov    %esp,%ebp
4067d1:	ff 75 08             	push   0x8(%ebp)
4067d4:	ff 15 54 b1 41 00    	call   *0x41b154
4067da:	85 c0                	test   %eax,%eax
4067dc:	74 04                	je     0x4067e2
4067de:	5d                   	pop    %ebp
4067df:	c2 04 00             	ret    $0x4
4067e2:	51                   	push   %ecx
4067e3:	8b 4d 04             	mov    0x4(%ebp),%ecx
4067e6:	ba 26 09 00 00       	mov    $0x926,%edx
4067eb:	e8 8c ff ff ff       	call   0x40677c
4067f0:	cc                   	int3
4067f1:	8b ff                	mov    %edi,%edi
4067f3:	55                   	push   %ebp
4067f4:	8b ec                	mov    %esp,%ebp
4067f6:	ff 75 08             	push   0x8(%ebp)
4067f9:	ff 15 3c b1 41 00    	call   *0x41b13c
4067ff:	85 c0                	test   %eax,%eax
406801:	74 04                	je     0x406807
406803:	5d                   	pop    %ebp
406804:	c2 04 00             	ret    $0x4
406807:	51                   	push   %ecx
406808:	8b 4d 04             	mov    0x4(%ebp),%ecx
40680b:	ba 30 09 00 00       	mov    $0x930,%edx
406810:	e8 67 ff ff ff       	call   0x40677c
406815:	cc                   	int3
406816:	8b ff                	mov    %edi,%edi
406818:	55                   	push   %ebp
406819:	8b ec                	mov    %esp,%ebp
40681b:	6a ff                	push   $0xffffffff
40681d:	68 67 41 41 00       	push   $0x414167
406822:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406828:	50                   	push   %eax
406829:	a1 18 51 41 00       	mov    0x415118,%eax
40682e:	33 c5                	xor    %ebp,%eax
406830:	50                   	push   %eax
406831:	8d 45 f4             	lea    -0xc(%ebp),%eax
406834:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40683a:	83 39 00             	cmpl   $0x0,(%ecx)
40683d:	74 07                	je     0x406846
40683f:	ff 31                	push   (%ecx)
406841:	e8 ab ff ff ff       	call   0x4067f1
406846:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406849:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406850:	59                   	pop    %ecx
406851:	c9                   	leave
406852:	c3                   	ret
406853:	8b ff                	mov    %edi,%edi
406855:	55                   	push   %ebp
406856:	8b ec                	mov    %esp,%ebp
406858:	51                   	push   %ecx
406859:	51                   	push   %ecx
40685a:	53                   	push   %ebx
40685b:	33 c0                	xor    %eax,%eax
40685d:	8b da                	mov    %edx,%ebx
40685f:	56                   	push   %esi
406860:	57                   	push   %edi
406861:	8b f8                	mov    %eax,%edi
406863:	89 45 f8             	mov    %eax,-0x8(%ebp)
406866:	89 03                	mov    %eax,(%ebx)
406868:	89 45 fc             	mov    %eax,-0x4(%ebp)
40686b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40686e:	51                   	push   %ecx
40686f:	50                   	push   %eax
406870:	e8 10 02 00 00       	call   0x406a85
406875:	8b f0                	mov    %eax,%esi
406877:	85 f6                	test   %esi,%esi
406879:	79 0f                	jns    0x40688a
40687b:	56                   	push   %esi
40687c:	51                   	push   %ecx
40687d:	8b 4d 04             	mov    0x4(%ebp),%ecx
406880:	6a 62                	push   $0x62
406882:	5a                   	pop    %edx
406883:	e8 be fe ff ff       	call   0x406746
406888:	eb 05                	jmp    0x40688f
40688a:	8b 7d f8             	mov    -0x8(%ebp),%edi
40688d:	33 f6                	xor    %esi,%esi
40688f:	85 f6                	test   %esi,%esi
406891:	79 11                	jns    0x4068a4
406893:	56                   	push   %esi
406894:	51                   	push   %ecx
406895:	8b 4d 04             	mov    0x4(%ebp),%ecx
406898:	6a 6b                	push   $0x6b
40689a:	5a                   	pop    %edx
40689b:	e8 a6 fe ff ff       	call   0x406746
4068a0:	8b c6                	mov    %esi,%eax
4068a2:	eb 09                	jmp    0x4068ad
4068a4:	8b c7                	mov    %edi,%eax
4068a6:	c1 e0 02             	shl    $0x2,%eax
4068a9:	89 03                	mov    %eax,(%ebx)
4068ab:	33 c0                	xor    %eax,%eax
4068ad:	5f                   	pop    %edi
4068ae:	5e                   	pop    %esi
4068af:	5b                   	pop    %ebx
4068b0:	c9                   	leave
4068b1:	c3                   	ret
4068b2:	8b ff                	mov    %edi,%edi
4068b4:	55                   	push   %ebp
4068b5:	8b ec                	mov    %esp,%ebp
4068b7:	81 ec 14 02 00 00    	sub    $0x214,%esp
4068bd:	a1 18 51 41 00       	mov    0x415118,%eax
4068c2:	33 c5                	xor    %ebp,%eax
4068c4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4068c7:	53                   	push   %ebx
4068c8:	56                   	push   %esi
4068c9:	57                   	push   %edi
4068ca:	8b 7d 10             	mov    0x10(%ebp),%edi
4068cd:	8b d9                	mov    %ecx,%ebx
4068cf:	8b c7                	mov    %edi,%eax
4068d1:	25 00 00 00 80       	and    $0x80000000,%eax
4068d6:	0b 45 14             	or     0x14(%ebp),%eax
4068d9:	0f 85 8b 00 00 00    	jne    0x40696a
4068df:	51                   	push   %ecx
4068e0:	ff 75 08             	push   0x8(%ebp)
4068e3:	ba 04 01 00 00       	mov    $0x104,%edx
4068e8:	51                   	push   %ecx