401783:	57                   	push   %edi
401784:	ff b5 e8 f5 ff ff    	push   -0xa18(%ebp)
40178a:	57                   	push   %edi
40178b:	ff 15 10 f0 40 00    	call   *0x40f010
401791:	3b c7                	cmp    %edi,%eax
401793:	75 3d                	jne    0x4017d2
401795:	ff 15 44 f0 40 00    	call   *0x40f044
40179b:	57                   	push   %edi
40179c:	b9 00 04 00 00       	mov    $0x400,%ecx
4017a1:	51                   	push   %ecx
4017a2:	8d 95 f0 f5 ff ff    	lea    -0xa10(%ebp),%edx
4017a8:	52                   	push   %edx
4017a9:	51                   	push   %ecx
4017aa:	50                   	push   %eax
4017ab:	57                   	push   %edi
4017ac:	68 00 10 00 00       	push   $0x1000
4017b1:	ff 15 20 f0 40 00    	call   *0x40f020
4017b7:	8d 85 f0 f5 ff ff    	lea    -0xa10(%ebp),%eax
4017bd:	50                   	push   %eax
4017be:	ff b5 e8 f5 ff ff    	push   -0xa18(%ebp)
4017c4:	68 d8 0b 41 00       	push   $0x410bd8
4017c9:	57                   	push   %edi
4017ca:	e8 31 f8 ff ff       	call   0x401000
4017cf:	83 c4 10             	add    $0x10,%esp
4017d2:	ff 35 e8 3d 41 00    	push   0x413de8
4017d8:	ff 35 68 3b 41 00    	push   0x413b68
4017de:	ff 15 1c f0 40 00    	call   *0x40f01c
4017e4:	ff b5 ce f5 ff ff    	push   -0xa32(%ebp)
4017ea:	8b 85 d0 f5 ff ff    	mov    -0xa30(%ebp),%eax
4017f0:	e8 15 fc ff ff       	call   0x40140a
4017f5:	59                   	pop    %ecx
4017f6:	e8 c5 fc ff ff       	call   0x4014c0
4017fb:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
401801:	50                   	push   %eax
401802:	68 05 01 00 00       	push   $0x105
401807:	ff 15 38 f0 40 00    	call   *0x40f038
40180d:	48                   	dec    %eax
40180e:	3d 03 01 00 00       	cmp    $0x103,%eax
401813:	77 0d                	ja     0x401822
401815:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40181b:	50                   	push   %eax
40181c:	ff 15 54 f0 40 00    	call   *0x40f054
401822:	6a 01                	push   $0x1
401824:	68 9d 13 40 00       	push   $0x40139d
401829:	ff 15 50 f0 40 00    	call   *0x40f050
40182f:	68 2c 0c 41 00       	push   $0x410c2c
401834:	50                   	push   %eax
401835:	e8 30 f8 ff ff       	call   0x40106a
40183a:	59                   	pop    %ecx
40183b:	59                   	pop    %ecx
40183c:	ff 35 ec 3d 41 00    	push   0x413dec
401842:	ff 15 58 f0 40 00    	call   *0x40f058
401848:	57                   	push   %edi
401849:	6a ff                	push   $0xffffffff
40184b:	ff 35 e8 3d 41 00    	push   0x413de8
401851:	ff 15 18 f0 40 00    	call   *0x40f018
401857:	8d 85 ec f5 ff ff    	lea    -0xa14(%ebp),%eax
40185d:	50                   	push   %eax
40185e:	ff 35 e8 3d 41 00    	push   0x413de8
401864:	ff 15 24 f0 40 00    	call   *0x40f024
40186a:	68 4c 0c 41 00       	push   $0x410c4c
40186f:	50                   	push   %eax
401870:	e8 f5 f7 ff ff       	call   0x40106a
401875:	59                   	pop    %ecx
401876:	59                   	pop    %ecx
401877:	ff b5 ec f5 ff ff    	push   -0xa14(%ebp)
40187d:	ff 15 00 f0 40 00    	call   *0x40f000
401883:	cc                   	int3
401884:	55                   	push   %ebp
401885:	8b ec                	mov    %esp,%ebp
401887:	51                   	push   %ecx
401888:	53                   	push   %ebx
401889:	56                   	push   %esi
40188a:	57                   	push   %edi
40188b:	8b 3d 4c f1 40 00    	mov    0x40f14c,%edi
401891:	bb 70 0c 41 00       	mov    $0x410c70,%ebx
401896:	53                   	push   %ebx
401897:	ff 75 08             	push   0x8(%ebp)
40189a:	ff d7                	call   *%edi
40189c:	8b f0                	mov    %eax,%esi
40189e:	85 f6                	test   %esi,%esi
4018a0:	74 3e                	je     0x4018e0
4018a2:	8d 46 08             	lea    0x8(%esi),%eax
4018a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4018a8:	0f b7 00             	movzwl (%eax),%eax
4018ab:	66 85 c0             	test   %ax,%ax
4018ae:	74 1f                	je     0x4018cf
4018b0:	83 f8 22             	cmp    $0x22,%eax
4018b3:	74 1a                	je     0x4018cf
4018b5:	6a 08                	push   $0x8
4018b7:	50                   	push   %eax
4018b8:	e8 9e 11 00 00       	call   0x402a5b
4018bd:	59                   	pop    %ecx
4018be:	59                   	pop    %ecx
4018bf:	85 c0                	test   %eax,%eax
4018c1:	75 0c                	jne    0x4018cf
4018c3:	53                   	push   %ebx
4018c4:	ff 75 fc             	push   -0x4(%ebp)
4018c7:	ff d7                	call   *%edi
4018c9:	8b f0                	mov    %eax,%esi
4018cb:	85 f6                	test   %esi,%esi
4018cd:	75 d3                	jne    0x4018a2
4018cf:	85 f6                	test   %esi,%esi
4018d1:	74 0d                	je     0x4018e0
4018d3:	8b 5d 08             	mov    0x8(%ebp),%ebx
4018d6:	83 c6 08             	add    $0x8,%esi
4018d9:	8b fb                	mov    %ebx,%edi
4018db:	e9 cd 00 00 00       	jmp    0x4019ad
4018e0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4018e3:	6a 0c                	push   $0xc
4018e5:	68 7c 0c 41 00       	push   $0x410c7c
4018ea:	53                   	push   %ebx
4018eb:	e8 61 08 00 00       	call   0x402151
4018f0:	33 c9                	xor    %ecx,%ecx
4018f2:	85 c0                	test   %eax,%eax
4018f4:	0f 94 c1             	sete   %cl
4018f7:	53                   	push   %ebx
4018f8:	68 98 0c 41 00       	push   $0x410c98
4018fd:	51                   	push   %ecx
4018fe:	e8 67 f7 ff ff       	call   0x40106a
401903:	8d 7b 18             	lea    0x18(%ebx),%edi
401906:	0f b7 07             	movzwl (%edi),%eax
401909:	83 c4 18             	add    $0x18,%esp
40190c:	66 85 c0             	test   %ax,%ax
40190f:	74 13                	je     0x401924
401911:	6a 08                	push   $0x8
401913:	50                   	push   %eax
401914:	e8 42 11 00 00       	call   0x402a5b
401919:	59                   	pop    %ecx
40191a:	59                   	pop    %ecx
40191b:	85 c0                	test   %eax,%eax
40191d:	74 05                	je     0x401924
40191f:	33 c0                	xor    %eax,%eax
401921:	40                   	inc    %eax
401922:	eb 02                	jmp    0x401926
401924:	33 c0                	xor    %eax,%eax
401926:	53                   	push   %ebx
401927:	68 dc 0c 41 00       	push   $0x410cdc
40192c:	50                   	push   %eax
40192d:	e8 38 f7 ff ff       	call   0x40106a
401932:	83 c4 0c             	add    $0xc,%esp
401935:	83 c7 02             	add    $0x2,%edi
401938:	0f b7 07             	movzwl (%edi),%eax
40193b:	66 85 c0             	test   %ax,%ax
40193e:	74 0e                	je     0x40194e
401940:	6a 08                	push   $0x8
401942:	50                   	push   %eax
401943:	e8 13 11 00 00       	call   0x402a5b
401948:	59                   	pop    %ecx
401949:	59                   	pop    %ecx
40194a:	85 c0                	test   %eax,%eax
40194c:	75 e7                	jne    0x401935
40194e:	66 83 3f 00          	cmpw   $0x0,(%edi)
401952:	8b f7                	mov    %edi,%esi
401954:	74 19                	je     0x40196f
401956:	0f b7 06             	movzwl (%esi),%eax
401959:	6a 08                	push   $0x8
40195b:	50                   	push   %eax
40195c:	e8 fa 10 00 00       	call   0x402a5b
401961:	59                   	pop    %ecx
401962:	59                   	pop    %ecx
401963:	85 c0                	test   %eax,%eax
401965:	75 08                	jne    0x40196f
401967:	83 c6 02             	add    $0x2,%esi
40196a:	66 39 06             	cmp    %ax,(%esi)
40196d:	75 e7                	jne    0x401956
40196f:	0f b7 06             	movzwl (%esi),%eax
401972:	6a 08                	push   $0x8
401974:	50                   	push   %eax
401975:	e8 e1 10 00 00       	call   0x402a5b
40197a:	59                   	pop    %ecx
40197b:	59                   	pop    %ecx
40197c:	85 c0                	test   %eax,%eax
40197e:	74 08                	je     0x401988
401980:	33 c0                	xor    %eax,%eax
401982:	66 89 06             	mov    %ax,(%esi)
401985:	83 c6 02             	add    $0x2,%esi
401988:	57                   	push   %edi
401989:	e8 60 f9 ff ff       	call   0x4012ee
40198e:	53                   	push   %ebx
40198f:	f7 d8                	neg    %eax
401991:	68 14 0d 41 00       	push   $0x410d14
401996:	1b ff                	sbb    %edi,%edi
401998:	6a 00                	push   $0x0
40199a:	58                   	pop    %eax
40199b:	81 e7 f8 3d 41 00    	and    $0x413df8,%edi
4019a1:	0f 95 c0             	setne  %al
4019a4:	50                   	push   %eax
4019a5:	e8 c0 f6 ff ff       	call   0x40106a
4019aa:	83 c4 10             	add    $0x10,%esp
4019ad:	66 83 3b 22          	cmpw   $0x22,(%ebx)
4019b1:	75 26                	jne    0x4019d9
4019b3:	33 c0                	xor    %eax,%eax
4019b5:	66 83 3e 22          	cmpw   $0x22,(%esi)
4019b9:	53                   	push   %ebx
4019ba:	0f 94 c0             	sete   %al
4019bd:	68 48 0d 41 00       	push   $0x410d48
4019c2:	50                   	push   %eax
4019c3:	e8 a2 f6 ff ff       	call   0x40106a
4019c8:	33 c0                	xor    %eax,%eax
4019ca:	66 89 06             	mov    %ax,(%esi)
4019cd:	83 c4 0c             	add    $0xc,%esp
4019d0:	83 c6 02             	add    $0x2,%esi
4019d3:	83 c3 02             	add    $0x2,%ebx
4019d6:	83 c7 02             	add    $0x2,%edi
4019d9:	6a 0f                	push   $0xf
4019db:	68 90 0d 41 00       	push   $0x410d90
4019e0:	53                   	push   %ebx
4019e1:	e8 6b 07 00 00       	call   0x402151
4019e6:	83 c4 0c             	add    $0xc,%esp
4019e9:	85 c0                	test   %eax,%eax
4019eb:	74 1f                	je     0x401a0c
4019ed:	66 83 7b 1e 22       	cmpw   $0x22,0x1e(%ebx)
4019f2:	74 18                	je     0x401a0c
4019f4:	33 c0                	xor    %eax,%eax
4019f6:	66 83 3e 22          	cmpw   $0x22,(%esi)
4019fa:	53                   	push   %ebx
4019fb:	0f 95 c0             	setne  %al
4019fe:	68 b0 0d 41 00       	push   $0x410db0
401a03:	50                   	push   %eax
401a04:	e8 61 f6 ff ff       	call   0x40106a
401a09:	83 c4 0c             	add    $0xc,%esp
401a0c:	0f b7 06             	movzwl (%esi),%eax
401a0f:	66 85 c0             	test   %ax,%ax
401a12:	74 26                	je     0x401a3a
401a14:	6a 08                	push   $0x8
401a16:	50                   	push   %eax
401a17:	e8 3f 10 00 00       	call   0x402a5b
401a1c:	59                   	pop    %ecx
401a1d:	59                   	pop    %ecx
401a1e:	85 c0                	test   %eax,%eax
401a20:	74 18                	je     0x401a3a
401a22:	33 c0                	xor    %eax,%eax
401a24:	66 89 06             	mov    %ax,(%esi)
401a27:	eb 0e                	jmp    0x401a37
401a29:	6a 08                	push   $0x8
401a2b:	50                   	push   %eax
401a2c:	e8 2a 10 00 00       	call   0x402a5b
401a31:	59                   	pop    %ecx
401a32:	59                   	pop    %ecx
401a33:	85 c0                	test   %eax,%eax
401a35:	74 0b                	je     0x401a42
401a37:	83 c6 02             	add    $0x2,%esi
401a3a:	0f b7 06             	movzwl (%esi),%eax
401a3d:	66 85 c0             	test   %ax,%ax
401a40:	75 e7                	jne    0x401a29
401a42:	8b 45 0c             	mov    0xc(%ebp),%eax
401a45:	89 30                	mov    %esi,(%eax)
401a47:	8b c7                	mov    %edi,%eax
401a49:	5f                   	pop    %edi
401a4a:	5e                   	pop    %esi
401a4b:	5b                   	pop    %ebx
401a4c:	c9                   	leave
401a4d:	c3                   	ret
401a4e:	55                   	push   %ebp
401a4f:	8b ec                	mov    %esp,%ebp
401a51:	81 ec 30 07 00 00    	sub    $0x730,%esp
401a57:	a1 84 22 41 00       	mov    0x412284,%eax
401a5c:	33 c5                	xor    %ebp,%eax
401a5e:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a61:	53                   	push   %ebx
401a62:	56                   	push   %esi
401a63:	57                   	push   %edi
401a64:	ff 15 04 f0 40 00    	call   *0x40f004
401a6a:	66 83 38 22          	cmpw   $0x22,(%eax)
401a6e:	74 04                	je     0x401a74
401a70:	6a 20                	push   $0x20
401a72:	eb 05                	jmp    0x401a79
401a74:	6a 22                	push   $0x22
401a76:	83 c0 04             	add    $0x4,%eax
401a79:	59                   	pop    %ecx
401a7a:	51                   	push   %ecx
401a7b:	50                   	push   %eax
401a7c:	e8 37 04 00 00       	call   0x401eb8
401a81:	59                   	pop    %ecx
401a82:	59                   	pop    %ecx
401a83:	85 c0                	test   %eax,%eax
401a85:	75 0c                	jne    0x401a93
401a87:	c7 85 d4 f8 ff ff 14 	movl   $0x410b14,-0x72c(%ebp)
401a8e:	0b 41 00
401a91:	eb 24                	jmp    0x401ab7
401a93:	8d 70 02             	lea    0x2(%eax),%esi
401a96:	eb 11                	jmp    0x401aa9
401a98:	6a 08                	push   $0x8
401a9a:	50                   	push   %eax
401a9b:	e8 bb 0f 00 00       	call   0x402a5b
401aa0:	59                   	pop    %ecx
401aa1:	59                   	pop    %ecx
401aa2:	85 c0                	test   %eax,%eax
401aa4:	74 0b                	je     0x401ab1
401aa6:	83 c6 02             	add    $0x2,%esi
401aa9:	0f b7 06             	movzwl (%esi),%eax
401aac:	66 85 c0             	test   %ax,%ax
401aaf:	75 e7                	jne    0x401a98
401ab1:	89 b5 d4 f8 ff ff    	mov    %esi,-0x72c(%ebp)
401ab7:	bf 04 01 00 00       	mov    $0x104,%edi
401abc:	57                   	push   %edi
401abd:	be e0 3b 41 00       	mov    $0x413be0,%esi
401ac2:	56                   	push   %esi
401ac3:	6a 00                	push   $0x0
401ac5:	ff 15 28 f0 40 00    	call   *0x40f028
401acb:	66 83 3d e0 3b 41 00 	cmpw   $0x22,0x413be0
401ad2:	22
401ad3:	74 08                	je     0x401add
401ad5:	89 b5 dc f8 ff ff    	mov    %esi,-0x724(%ebp)
401adb:	eb 0d                	jmp    0x401aea
401add:	c7 85 dc f8 ff ff e2 	movl   $0x413be2,-0x724(%ebp)
401ae4:	3b 41 00
401ae7:	83 e8 02             	sub    $0x2,%eax
401aea:	8b 95 dc f8 ff ff    	mov    -0x724(%ebp),%edx
401af0:	33 c9                	xor    %ecx,%ecx
401af2:	8d 9d e0 f8 ff ff    	lea    -0x720(%ebp),%ebx
401af8:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
401afc:	c6 05 c0 2e 41 00 50 	movb   $0x50,0x412ec0
401b03:	e8 0e f6 ff ff       	call   0x401116
401b08:	8b d8                	mov    %eax,%ebx
401b0a:	33 c0                	xor    %eax,%eax
401b0c:	85 db                	test   %ebx,%ebx
401b0e:	0f 95 c0             	setne  %al
401b11:	68 00 0e 41 00       	push   $0x410e00
401b16:	50                   	push   %eax
401b17:	e8 4e f5 ff ff       	call   0x40106a
401b1c:	59                   	pop    %ecx
401b1d:	8d 83 04 01 00 00    	lea    0x104(%ebx),%eax
401b23:	33 f6                	xor    %esi,%esi
401b25:	59                   	pop    %ecx
401b26:	8b cb                	mov    %ebx,%ecx
401b28:	3b d8                	cmp    %eax,%ebx
401b2a:	73 15                	jae    0x401b41
401b2c:	8a 11                	mov    (%ecx),%dl
401b2e:	80 fa 0d             	cmp    $0xd,%dl
401b31:	74 0c                	je     0x401b3f
401b33:	80 fa 0a             	cmp    $0xa,%dl
401b36:	74 07                	je     0x401b3f
401b38:	41                   	inc    %ecx
401b39:	3b c8                	cmp    %eax,%ecx
401b3b:	72 ef                	jb     0x401b2c
401b3d:	eb 02                	jmp    0x401b41
401b3f:	8b f1                	mov    %ecx,%esi
401b41:	33 c0                	xor    %eax,%eax
401b43:	85 f6                	test   %esi,%esi
401b45:	0f 95 c0             	setne  %al
401b48:	68 18 0e 41 00       	push   $0x410e18
401b4d:	50                   	push   %eax
401b4e:	e8 17 f5 ff ff       	call   0x40106a
401b53:	59                   	pop    %ecx
401b54:	59                   	pop    %ecx
401b55:	57                   	push   %edi
401b56:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
401b5c:	50                   	push   %eax