4066c2:	74 05                	je     0x4066c9
4066c4:	83 08 ff             	orl    $0xffffffff,(%eax)
4066c7:	eb 02                	jmp    0x4066cb
4066c9:	01 38                	add    %edi,(%eax)
4066cb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4066ce:	83 3b 00             	cmpl   $0x0,(%ebx)
4066d1:	75 06                	jne    0x4066d9
4066d3:	85 c9                	test   %ecx,%ecx
4066d5:	74 02                	je     0x4066d9
4066d7:	89 0b                	mov    %ecx,(%ebx)
4066d9:	5f                   	pop    %edi
4066da:	5b                   	pop    %ebx
4066db:	8b e5                	mov    %ebp,%esp
4066dd:	5d                   	pop    %ebp
4066de:	c2 10 00             	ret    $0x10
4066e1:	8b ff                	mov    %edi,%edi
4066e3:	55                   	push   %ebp
4066e4:	8b ec                	mov    %esp,%ebp
4066e6:	ff 75 20             	push   0x20(%ebp)
4066e9:	ff 75 1c             	push   0x1c(%ebp)
4066ec:	ff 75 18             	push   0x18(%ebp)
4066ef:	ff 75 14             	push   0x14(%ebp)
4066f2:	ff 75 10             	push   0x10(%ebp)
4066f5:	ff 75 0c             	push   0xc(%ebp)
4066f8:	ff 75 08             	push   0x8(%ebp)
4066fb:	e8 bc ea ff ff       	call   0x4051bc
406700:	83 c4 1c             	add    $0x1c,%esp
406703:	5d                   	pop    %ebp
406704:	c3                   	ret
406705:	8b ff                	mov    %edi,%edi
406707:	55                   	push   %ebp
406708:	8b ec                	mov    %esp,%ebp
40670a:	ff 75 20             	push   0x20(%ebp)
40670d:	ff 75 1c             	push   0x1c(%ebp)
406710:	ff 75 18             	push   0x18(%ebp)
406713:	ff 75 14             	push   0x14(%ebp)
406716:	ff 75 10             	push   0x10(%ebp)
406719:	ff 75 0c             	push   0xc(%ebp)
40671c:	ff 75 08             	push   0x8(%ebp)
40671f:	e8 1d ec ff ff       	call   0x405341
406724:	83 c4 1c             	add    $0x1c,%esp
406727:	5d                   	pop    %ebp
406728:	c3                   	ret
406729:	8b ff                	mov    %edi,%edi
40672b:	55                   	push   %ebp
40672c:	8b ec                	mov    %esp,%ebp
40672e:	83 ec 3c             	sub    $0x3c,%esp
406731:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406735:	75 20                	jne    0x406757
406737:	e8 b8 15 00 00       	call   0x407cf4
40673c:	83 20 00             	andl   $0x0,(%eax)
40673f:	e8 c3 15 00 00       	call   0x407d07
406744:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40674a:	e8 df 14 00 00       	call   0x407c2e
40674f:	83 c8 ff             	or     $0xffffffff,%eax
406752:	e9 d5 00 00 00       	jmp    0x40682c
406757:	53                   	push   %ebx
406758:	56                   	push   %esi
406759:	57                   	push   %edi
40675a:	6a 38                	push   $0x38
40675c:	33 db                	xor    %ebx,%ebx
40675e:	8d 45 c4             	lea    -0x3c(%ebp),%eax
406761:	53                   	push   %ebx
406762:	50                   	push   %eax
406763:	e8 f8 e2 ff ff       	call   0x404a60
406768:	8b 7d 0c             	mov    0xc(%ebp),%edi
40676b:	8d 75 c4             	lea    -0x3c(%ebp),%esi
40676e:	83 c4 0c             	add    $0xc,%esp
406771:	6a 0e                	push   $0xe
406773:	59                   	pop    %ecx
406774:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406776:	8b 7d 08             	mov    0x8(%ebp),%edi
406779:	85 ff                	test   %edi,%edi
40677b:	75 19                	jne    0x406796
40677d:	e8 72 15 00 00       	call   0x407cf4
406782:	89 18                	mov    %ebx,(%eax)
406784:	e8 7e 15 00 00       	call   0x407d07
406789:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40678f:	e8 9a 14 00 00       	call   0x407c2e
406794:	eb 22                	jmp    0x4067b8
406796:	68 28 bd 41 00       	push   $0x41bd28
40679b:	57                   	push   %edi
40679c:	e8 a9 54 00 00       	call   0x40bc4a
4067a1:	59                   	pop    %ecx
4067a2:	59                   	pop    %ecx
4067a3:	85 c0                	test   %eax,%eax
4067a5:	74 16                	je     0x4067bd
4067a7:	e8 5b 15 00 00       	call   0x407d07
4067ac:	6a 02                	push   $0x2
4067ae:	5e                   	pop    %esi
4067af:	89 30                	mov    %esi,(%eax)
4067b1:	e8 3e 15 00 00       	call   0x407cf4
4067b6:	89 30                	mov    %esi,(%eax)
4067b8:	83 c8 ff             	or     $0xffffffff,%eax
4067bb:	eb 6c                	jmp    0x406829
4067bd:	53                   	push   %ebx
4067be:	68 00 00 00 02       	push   $0x2000000
4067c3:	6a 03                	push   $0x3
4067c5:	53                   	push   %ebx
4067c6:	6a 07                	push   $0x7
4067c8:	68 80 00 00 00       	push   $0x80
4067cd:	57                   	push   %edi
4067ce:	ff 15 0c b1 41 00    	call   *0x41b10c
4067d4:	ff 75 0c             	push   0xc(%ebp)
4067d7:	8b f0                	mov    %eax,%esi
4067d9:	89 75 fc             	mov    %esi,-0x4(%ebp)
4067dc:	83 fe ff             	cmp    $0xffffffff,%esi
4067df:	74 0e                	je     0x4067ef
4067e1:	56                   	push   %esi
4067e2:	6a ff                	push   $0xffffffff
4067e4:	57                   	push   %edi
4067e5:	e8 d2 00 00 00       	call   0x4068bc
4067ea:	83 c4 10             	add    $0x10,%esp
4067ed:	eb 08                	jmp    0x4067f7
4067ef:	57                   	push   %edi
4067f0:	e8 3b 00 00 00       	call   0x406830
4067f5:	59                   	pop    %ecx
4067f6:	59                   	pop    %ecx
4067f7:	84 c0                	test   %al,%al
4067f9:	75 20                	jne    0x40681b
4067fb:	6a 38                	push   $0x38
4067fd:	8d 45 c4             	lea    -0x3c(%ebp),%eax
406800:	53                   	push   %ebx
406801:	50                   	push   %eax
406802:	e8 59 e2 ff ff       	call   0x404a60
406807:	8b 7d 0c             	mov    0xc(%ebp),%edi
40680a:	8d 75 c4             	lea    -0x3c(%ebp),%esi
40680d:	83 c4 0c             	add    $0xc,%esp
406810:	83 cb ff             	or     $0xffffffff,%ebx
406813:	6a 0e                	push   $0xe
406815:	59                   	pop    %ecx
406816:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406818:	8b 75 fc             	mov    -0x4(%ebp),%esi
40681b:	83 fe ff             	cmp    $0xffffffff,%esi
40681e:	74 07                	je     0x406827
406820:	56                   	push   %esi
406821:	ff 15 8c b0 41 00    	call   *0x41b08c
406827:	8b c3                	mov    %ebx,%eax
406829:	5f                   	pop    %edi
40682a:	5e                   	pop    %esi
40682b:	5b                   	pop    %ebx
40682c:	8b e5                	mov    %ebp,%esp
40682e:	5d                   	pop    %ebp
40682f:	c3                   	ret
406830:	8b ff                	mov    %edi,%edi
406832:	55                   	push   %ebp
406833:	8b ec                	mov    %esp,%ebp
406835:	51                   	push   %ecx
406836:	ff 75 08             	push   0x8(%ebp)
406839:	e8 3b 06 00 00       	call   0x406e79
40683e:	59                   	pop    %ecx
40683f:	84 c0                	test   %al,%al
406841:	75 0c                	jne    0x40684f
406843:	6a 02                	push   $0x2
406845:	e8 87 14 00 00       	call   0x407cd1
40684a:	59                   	pop    %ecx
40684b:	32 c0                	xor    %al,%al
40684d:	eb 69                	jmp    0x4068b8
40684f:	53                   	push   %ebx
406850:	56                   	push   %esi
406851:	57                   	push   %edi
406852:	ff 75 08             	push   0x8(%ebp)
406855:	6a 10                	push   $0x10
406857:	e8 a4 03 00 00       	call   0x406c00
40685c:	8b 75 0c             	mov    0xc(%ebp),%esi
40685f:	33 db                	xor    %ebx,%ebx
406861:	43                   	inc    %ebx
406862:	33 ff                	xor    %edi,%edi
406864:	89 7d fc             	mov    %edi,-0x4(%ebp)
406867:	66 89 46 06          	mov    %ax,0x6(%esi)
40686b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40686e:	50                   	push   %eax
40686f:	ff 75 08             	push   0x8(%ebp)
406872:	66 89 5e 08          	mov    %bx,0x8(%esi)
406876:	e8 eb 03 00 00       	call   0x406c66
40687b:	83 c4 10             	add    $0x10,%esp
40687e:	84 c0                	test   %al,%al
406880:	74 33                	je     0x4068b5
406882:	8b 45 fc             	mov    -0x4(%ebp),%eax
406885:	6a ff                	push   $0xffffffff
406887:	57                   	push   %edi
406888:	57                   	push   %edi
406889:	57                   	push   %edi
40688a:	53                   	push   %ebx
40688b:	48                   	dec    %eax
40688c:	53                   	push   %ebx
40688d:	68 bc 07 00 00       	push   $0x7bc
406892:	89 46 10             	mov    %eax,0x10(%esi)
406895:	89 06                	mov    %eax,(%esi)
406897:	e8 a7 60 00 00       	call   0x40c943
40689c:	8b c8                	mov    %eax,%ecx
40689e:	89 46 28             	mov    %eax,0x28(%esi)
4068a1:	83 c4 1c             	add    $0x1c,%esp
4068a4:	89 56 2c             	mov    %edx,0x2c(%esi)
4068a7:	89 4e 20             	mov    %ecx,0x20(%esi)
4068aa:	8a c3                	mov    %bl,%al
4068ac:	89 56 24             	mov    %edx,0x24(%esi)
4068af:	89 4e 30             	mov    %ecx,0x30(%esi)
4068b2:	89 56 34             	mov    %edx,0x34(%esi)
4068b5:	5f                   	pop    %edi
4068b6:	5e                   	pop    %esi
4068b7:	5b                   	pop    %ebx
4068b8:	8b e5                	mov    %ebp,%esp
4068ba:	5d                   	pop    %ebp
4068bb:	c3                   	ret
4068bc:	8b ff                	mov    %edi,%edi
4068be:	55                   	push   %ebp
4068bf:	8b ec                	mov    %esp,%ebp
4068c1:	83 ec 50             	sub    $0x50,%esp
4068c4:	a1 0c 30 42 00       	mov    0x42300c,%eax
4068c9:	33 c5                	xor    %ebp,%eax
4068cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4068ce:	8b 45 08             	mov    0x8(%ebp),%eax
4068d1:	53                   	push   %ebx
4068d2:	56                   	push   %esi
4068d3:	8b 75 14             	mov    0x14(%ebp),%esi
4068d6:	57                   	push   %edi
4068d7:	8b 7d 10             	mov    0x10(%ebp),%edi
4068da:	57                   	push   %edi
4068db:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4068de:	89 7d b8             	mov    %edi,-0x48(%ebp)
4068e1:	ff 15 14 b1 41 00    	call   *0x41b114
4068e7:	8b c8                	mov    %eax,%ecx
4068e9:	33 c0                	xor    %eax,%eax
4068eb:	81 e1 ff 7f ff ff    	and    $0xffff7fff,%ecx
4068f1:	40                   	inc    %eax
4068f2:	3b c8                	cmp    %eax,%ecx
4068f4:	0f 85 f5 00 00 00    	jne    0x4069ef
4068fa:	66 89 46 08          	mov    %ax,0x8(%esi)
4068fe:	33 db                	xor    %ebx,%ebx
406900:	8b 45 b4             	mov    -0x4c(%ebp),%eax
406903:	85 c0                	test   %eax,%eax
406905:	74 20                	je     0x406927
406907:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40690a:	89 5d b0             	mov    %ebx,-0x50(%ebp)
40690d:	51                   	push   %ecx
40690e:	50                   	push   %eax
40690f:	e8 52 03 00 00       	call   0x406c66
406914:	59                   	pop    %ecx
406915:	59                   	pop    %ecx
406916:	84 c0                	test   %al,%al
406918:	0f 84 ea 00 00 00    	je     0x406a08
40691e:	8b 45 b0             	mov    -0x50(%ebp),%eax
406921:	48                   	dec    %eax
406922:	89 46 10             	mov    %eax,0x10(%esi)
406925:	89 06                	mov    %eax,(%esi)
406927:	6a 0a                	push   $0xa
406929:	59                   	pop    %ecx
40692a:	33 c0                	xor    %eax,%eax
40692c:	8d 7d d4             	lea    -0x2c(%ebp),%edi
40692f:	6a 28                	push   $0x28
406931:	f3 ab                	rep stos %eax,%es:(%edi)
406933:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406936:	50                   	push   %eax
406937:	53                   	push   %ebx
406938:	ff 75 b8             	push   -0x48(%ebp)
40693b:	e8 4f 56 00 00       	call   0x40bf8f
406940:	85 c0                	test   %eax,%eax
406942:	0f 84 c4 00 00 00    	je     0x406a0c
406948:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40694b:	50                   	push   %eax
40694c:	ff 75 f4             	push   -0xc(%ebp)
40694f:	e8 ac 02 00 00       	call   0x406c00
406954:	53                   	push   %ebx
406955:	53                   	push   %ebx
406956:	ff 75 e8             	push   -0x18(%ebp)
406959:	66 89 46 06          	mov    %ax,0x6(%esi)
40695d:	ff 75 e4             	push   -0x1c(%ebp)
406960:	e8 13 01 00 00       	call   0x406a78
406965:	89 46 28             	mov    %eax,0x28(%esi)
406968:	83 c4 18             	add    $0x18,%esp
40696b:	23 c2                	and    %edx,%eax
40696d:	89 56 2c             	mov    %edx,0x2c(%esi)
406970:	83 f8 ff             	cmp    $0xffffffff,%eax
406973:	0f 84 8f 00 00 00    	je     0x406a08
406979:	52                   	push   %edx
40697a:	ff 76 28             	push   0x28(%esi)
40697d:	ff 75 e0             	push   -0x20(%ebp)
406980:	ff 75 dc             	push   -0x24(%ebp)
406983:	e8 f0 00 00 00       	call   0x406a78
406988:	89 46 20             	mov    %eax,0x20(%esi)
40698b:	83 c4 10             	add    $0x10,%esp
40698e:	23 c2                	and    %edx,%eax
406990:	89 56 24             	mov    %edx,0x24(%esi)
406993:	83 f8 ff             	cmp    $0xffffffff,%eax
406996:	74 70                	je     0x406a08
406998:	ff 76 2c             	push   0x2c(%esi)
40699b:	ff 76 28             	push   0x28(%esi)
40699e:	ff 75 d8             	push   -0x28(%ebp)
4069a1:	ff 75 d4             	push   -0x2c(%ebp)
4069a4:	e8 cf 00 00 00       	call   0x406a78
4069a9:	89 46 30             	mov    %eax,0x30(%esi)
4069ac:	83 c4 10             	add    $0x10,%esp
4069af:	23 c2                	and    %edx,%eax
4069b1:	89 56 34             	mov    %edx,0x34(%esi)
4069b4:	83 f8 ff             	cmp    $0xffffffff,%eax
4069b7:	74 4f                	je     0x406a08
4069b9:	6a 06                	push   $0x6
4069bb:	59                   	pop    %ecx
4069bc:	33 c0                	xor    %eax,%eax
4069be:	8d 7d bc             	lea    -0x44(%ebp),%edi
4069c1:	f3 ab                	rep stos %eax,%es:(%edi)
4069c3:	6a 18                	push   $0x18
4069c5:	8d 45 bc             	lea    -0x44(%ebp),%eax
4069c8:	50                   	push   %eax
4069c9:	33 c0                	xor    %eax,%eax
4069cb:	40                   	inc    %eax
4069cc:	50                   	push   %eax
4069cd:	ff 75 b8             	push   -0x48(%ebp)
4069d0:	e8 ba 55 00 00       	call   0x40bf8f
4069d5:	85 c0                	test   %eax,%eax
4069d7:	74 33                	je     0x406a0c
4069d9:	8d 46 18             	lea    0x18(%esi),%eax
4069dc:	50                   	push   %eax
4069dd:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4069e0:	50                   	push   %eax
4069e1:	e8 da 01 00 00       	call   0x406bc0
4069e6:	84 c0                	test   %al,%al
4069e8:	59                   	pop    %ecx
4069e9:	59                   	pop    %ecx
4069ea:	0f 95 c0             	setne  %al
4069ed:	eb 78                	jmp    0x406a67
4069ef:	83 f9 02             	cmp    $0x2,%ecx
4069f2:	74 27                	je     0x406a1b
4069f4:	83 f9 03             	cmp    $0x3,%ecx
4069f7:	74 22                	je     0x406a1b
4069f9:	85 c9                	test   %ecx,%ecx
4069fb:	75 0f                	jne    0x406a0c
4069fd:	e8 05 13 00 00       	call   0x407d07
406a02:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
406a08:	32 c0                	xor    %al,%al
406a0a:	eb 5b                	jmp    0x406a67
406a0c:	ff 15 48 b0 41 00    	call   *0x41b048
406a12:	50                   	push   %eax
406a13:	e8 b9 12 00 00       	call   0x407cd1
406a18:	59                   	pop    %ecx
406a19:	eb ed                	jmp    0x406a08
406a1b:	33 c0                	xor    %eax,%eax
406a1d:	ba 00 10 00 00       	mov    $0x1000,%edx
406a22:	83 f9 02             	cmp    $0x2,%ecx
406a25:	0f 95 c0             	setne  %al
406a28:	48                   	dec    %eax
406a29:	23 c2                	and    %edx,%eax
406a2b:	03 c2                	add    %edx,%eax
406a2d:	66 89 46 06          	mov    %ax,0x6(%esi)
406a31:	33 c0                	xor    %eax,%eax
406a33:	40                   	inc    %eax
406a34:	66 89 46 08          	mov    %ax,0x8(%esi)
406a38:	8b 45 0c             	mov    0xc(%ebp),%eax
406a3b:	89 46 10             	mov    %eax,0x10(%esi)