405724:	68 18 92 40 00       	push   $0x409218
405729:	a3 1c 92 40 00       	mov    %eax,0x40921c
40572e:	a1 00 37 42 00       	mov    0x423700,%eax
405733:	a3 20 92 40 00       	mov    %eax,0x409220
405738:	8b 44 24 08          	mov    0x8(%esp),%eax
40573c:	a3 24 92 40 00       	mov    %eax,0x409224
405741:	c7 05 28 92 40 00 00 	movl   $0x422f00,0x409228
405748:	2f 42 00
40574b:	89 0d 2c 92 40 00    	mov    %ecx,0x40922c
405751:	ff 15 e0 71 40 00    	call   *0x4071e0
405757:	c2 08 00             	ret    $0x8
40575a:	56                   	push   %esi
40575b:	8b 74 24 08          	mov    0x8(%esp),%esi
40575f:	57                   	push   %edi
405760:	56                   	push   %esi
405761:	e8 e8 03 00 00       	call   0x405b4e
405766:	8b f8                	mov    %eax,%edi
405768:	83 ff ff             	cmp    $0xffffffff,%edi
40576b:	74 2e                	je     0x40579b
40576d:	f6 44 24 10 01       	testb  $0x1,0x10(%esp)
405772:	56                   	push   %esi
405773:	74 08                	je     0x40577d
405775:	ff 15 c4 70 40 00    	call   *0x4070c4
40577b:	eb 06                	jmp    0x405783
40577d:	ff 15 28 71 40 00    	call   *0x407128
405783:	85 c0                	test   %eax,%eax
405785:	74 05                	je     0x40578c
405787:	33 c0                	xor    %eax,%eax
405789:	40                   	inc    %eax
40578a:	eb 11                	jmp    0x40579d
40578c:	f6 44 24 10 04       	testb  $0x4,0x10(%esp)
405791:	75 08                	jne    0x40579b
405793:	57                   	push   %edi
405794:	56                   	push   %esi
405795:	ff 15 b4 70 40 00    	call   *0x4070b4
40579b:	33 c0                	xor    %eax,%eax
40579d:	5f                   	pop    %edi
40579e:	5e                   	pop    %esi
40579f:	c2 08 00             	ret    $0x8
4057a2:	55                   	push   %ebp
4057a3:	8b ec                	mov    %esp,%ebp
4057a5:	81 ec 4c 01 00 00    	sub    $0x14c,%esp
4057ab:	53                   	push   %ebx
4057ac:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4057af:	56                   	push   %esi
4057b0:	57                   	push   %edi
4057b1:	8b 7d 08             	mov    0x8(%ebp),%edi
4057b4:	8b c3                	mov    %ebx,%eax
4057b6:	83 e0 04             	and    $0x4,%eax
4057b9:	57                   	push   %edi
4057ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
4057bd:	e8 9e 02 00 00       	call   0x405a60
4057c2:	f6 c3 08             	test   $0x8,%bl
4057c5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4057c8:	74 17                	je     0x4057e1
4057ca:	57                   	push   %edi
4057cb:	ff 15 28 71 40 00    	call   *0x407128
4057d1:	f7 d8                	neg    %eax
4057d3:	1b c0                	sbb    %eax,%eax
4057d5:	40                   	inc    %eax
4057d6:	01 05 a8 37 42 00    	add    %eax,0x4237a8
4057dc:	e9 8a 01 00 00       	jmp    0x40596b
4057e1:	89 5d 08             	mov    %ebx,0x8(%ebp)
4057e4:	83 65 08 01          	andl   $0x1,0x8(%ebp)
4057e8:	74 11                	je     0x4057fb
4057ea:	85 c0                	test   %eax,%eax
4057ec:	0f 84 27 01 00 00    	je     0x405919
4057f2:	f6 c3 02             	test   $0x2,%bl
4057f5:	0f 84 1e 01 00 00    	je     0x405919
4057fb:	be 10 0d 42 00       	mov    $0x420d10,%esi
405800:	57                   	push   %edi
405801:	56                   	push   %esi
405802:	e8 d3 07 00 00       	call   0x405fda
405807:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40580b:	74 0d                	je     0x40581a
40580d:	68 ac 93 40 00       	push   $0x4093ac
405812:	56                   	push   %esi
405813:	e8 de 07 00 00       	call   0x405ff6
405818:	eb 06                	jmp    0x405820
40581a:	57                   	push   %edi
40581b:	e8 99 01 00 00       	call   0x4059b9
405820:	80 3f 00             	cmpb   $0x0,(%edi)
405823:	75 09                	jne    0x40582e
405825:	80 3d 10 0d 42 00 5c 	cmpb   $0x5c,0x420d10
40582c:	75 0b                	jne    0x405839
40582e:	68 14 90 40 00       	push   $0x409014
405833:	57                   	push   %edi
405834:	e8 bd 07 00 00       	call   0x405ff6
405839:	57                   	push   %edi
40583a:	e8 b1 07 00 00       	call   0x405ff0
40583f:	8b d8                	mov    %eax,%ebx
405841:	8d 85 b4 fe ff ff    	lea    -0x14c(%ebp),%eax
405847:	50                   	push   %eax
405848:	56                   	push   %esi
405849:	03 df                	add    %edi,%ebx
40584b:	ff 15 2c 71 40 00    	call   *0x40712c
405851:	83 f8 ff             	cmp    $0xffffffff,%eax
405854:	89 45 f8             	mov    %eax,-0x8(%ebp)
405857:	0f 84 b2 00 00 00    	je     0x40590f
40585d:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
405863:	6a 3f                	push   $0x3f
405865:	50                   	push   %eax
405866:	8d b5 e0 fe ff ff    	lea    -0x120(%ebp),%esi
40586c:	e8 2c 01 00 00       	call   0x40599d
405871:	80 38 00             	cmpb   $0x0,(%eax)
405874:	74 09                	je     0x40587f
405876:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
40587a:	74 03                	je     0x40587f
40587c:	8d 75 e4             	lea    -0x1c(%ebp),%esi
40587f:	80 3e 2e             	cmpb   $0x2e,(%esi)
405882:	75 11                	jne    0x405895
405884:	8a 46 01             	mov    0x1(%esi),%al
405887:	84 c0                	test   %al,%al
405889:	74 63                	je     0x4058ee
40588b:	3c 2e                	cmp    $0x2e,%al
40588d:	75 06                	jne    0x405895
40588f:	80 7e 02 00          	cmpb   $0x0,0x2(%esi)
405893:	74 59                	je     0x4058ee
405895:	56                   	push   %esi
405896:	53                   	push   %ebx
405897:	e8 3e 07 00 00       	call   0x405fda
40589c:	f6 85 b4 fe ff ff 10 	testb  $0x10,-0x14c(%ebp)
4058a3:	74 15                	je     0x4058ba
4058a5:	8b 45 0c             	mov    0xc(%ebp),%eax
4058a8:	83 e0 03             	and    $0x3,%eax
4058ab:	3c 03                	cmp    $0x3,%al
4058ad:	75 3f                	jne    0x4058ee
4058af:	ff 75 0c             	push   0xc(%ebp)
4058b2:	57                   	push   %edi
4058b3:	e8 ea fe ff ff       	call   0x4057a2
4058b8:	eb 34                	jmp    0x4058ee
4058ba:	ff 75 fc             	push   -0x4(%ebp)
4058bd:	57                   	push   %edi
4058be:	e8 97 fe ff ff       	call   0x40575a
4058c3:	85 c0                	test   %eax,%eax
4058c5:	75 1f                	jne    0x4058e6
4058c7:	39 45 fc             	cmp    %eax,-0x4(%ebp)
4058ca:	74 12                	je     0x4058de
4058cc:	57                   	push   %edi
4058cd:	6a f1                	push   $0xfffffff1
4058cf:	e8 2d f8 ff ff       	call   0x405101
4058d4:	6a 00                	push   $0x0
4058d6:	57                   	push   %edi
4058d7:	e8 dd 04 00 00       	call   0x405db9
4058dc:	eb 10                	jmp    0x4058ee
4058de:	ff 05 a8 37 42 00    	incl   0x4237a8
4058e4:	eb 08                	jmp    0x4058ee
4058e6:	57                   	push   %edi
4058e7:	6a f2                	push   $0xfffffff2
4058e9:	e8 13 f8 ff ff       	call   0x405101
4058ee:	8d 85 b4 fe ff ff    	lea    -0x14c(%ebp),%eax
4058f4:	50                   	push   %eax
4058f5:	ff 75 f8             	push   -0x8(%ebp)
4058f8:	ff 15 30 71 40 00    	call   *0x407130
4058fe:	85 c0                	test   %eax,%eax
405900:	0f 85 57 ff ff ff    	jne    0x40585d
405906:	ff 75 f8             	push   -0x8(%ebp)
405909:	ff 15 34 71 40 00    	call   *0x407134
40590f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405913:	74 04                	je     0x405919
405915:	80 63 ff 00          	andb   $0x0,-0x1(%ebx)
405919:	33 f6                	xor    %esi,%esi
40591b:	39 75 08             	cmp    %esi,0x8(%ebp)
40591e:	74 4b                	je     0x40596b
405920:	39 75 f4             	cmp    %esi,-0xc(%ebp)
405923:	75 08                	jne    0x40592d
405925:	ff 05 a8 37 42 00    	incl   0x4237a8
40592b:	eb 3e                	jmp    0x40596b
40592d:	57                   	push   %edi
40592e:	e8 aa 09 00 00       	call   0x4062dd
405933:	85 c0                	test   %eax,%eax
405935:	74 34                	je     0x40596b
405937:	57                   	push   %edi
405938:	e8 35 00 00 00       	call   0x405972
40593d:	8b 45 fc             	mov    -0x4(%ebp),%eax
405940:	0c 01                	or     $0x1,%al
405942:	50                   	push   %eax
405943:	57                   	push   %edi
405944:	e8 11 fe ff ff       	call   0x40575a
405949:	85 c0                	test   %eax,%eax
40594b:	75 16                	jne    0x405963
40594d:	39 75 fc             	cmp    %esi,-0x4(%ebp)
405950:	74 d3                	je     0x405925
405952:	57                   	push   %edi
405953:	6a f1                	push   $0xfffffff1
405955:	e8 a7 f7 ff ff       	call   0x405101
40595a:	56                   	push   %esi
40595b:	57                   	push   %edi
40595c:	e8 58 04 00 00       	call   0x405db9
405961:	eb 08                	jmp    0x40596b
405963:	57                   	push   %edi
405964:	6a e5                	push   $0xffffffe5
405966:	e8 96 f7 ff ff       	call   0x405101
40596b:	5f                   	pop    %edi
40596c:	5e                   	pop    %esi
40596d:	5b                   	pop    %ebx
40596e:	c9                   	leave
40596f:	c2 08 00             	ret    $0x8
405972:	56                   	push   %esi
405973:	8b 74 24 08          	mov    0x8(%esp),%esi
405977:	56                   	push   %esi
405978:	e8 73 06 00 00       	call   0x405ff0
40597d:	03 c6                	add    %esi,%eax
40597f:	50                   	push   %eax
405980:	56                   	push   %esi
405981:	ff 15 e4 71 40 00    	call   *0x4071e4
405987:	80 38 5c             	cmpb   $0x5c,(%eax)
40598a:	74 0b                	je     0x405997
40598c:	68 14 90 40 00       	push   $0x409014
405991:	56                   	push   %esi
405992:	e8 5f 06 00 00       	call   0x405ff6
405997:	8b c6                	mov    %esi,%eax
405999:	5e                   	pop    %esi
40599a:	c2 04 00             	ret    $0x4
40599d:	8b 44 24 04          	mov    0x4(%esp),%eax
4059a1:	eb 0d                	jmp    0x4059b0
4059a3:	3a 4c 24 08          	cmp    0x8(%esp),%cl
4059a7:	74 0d                	je     0x4059b6
4059a9:	50                   	push   %eax
4059aa:	ff 15 2c 72 40 00    	call   *0x40722c
4059b0:	8a 08                	mov    (%eax),%cl
4059b2:	84 c9                	test   %cl,%cl
4059b4:	75 ed                	jne    0x4059a3
4059b6:	c2 08 00             	ret    $0x8
4059b9:	56                   	push   %esi
4059ba:	8b 74 24 08          	mov    0x8(%esp),%esi
4059be:	56                   	push   %esi
4059bf:	e8 2c 06 00 00       	call   0x405ff0
4059c4:	03 c6                	add    %esi,%eax
4059c6:	80 38 5c             	cmpb   $0x5c,(%eax)
4059c9:	74 0c                	je     0x4059d7
4059cb:	50                   	push   %eax
4059cc:	56                   	push   %esi
4059cd:	ff 15 e4 71 40 00    	call   *0x4071e4
4059d3:	3b c6                	cmp    %esi,%eax
4059d5:	77 ef                	ja     0x4059c6
4059d7:	80 20 00             	andb   $0x0,(%eax)
4059da:	40                   	inc    %eax
4059db:	5e                   	pop    %esi
4059dc:	c2 04 00             	ret    $0x4
4059df:	8b 54 24 04          	mov    0x4(%esp),%edx
4059e3:	8a 0a                	mov    (%edx),%cl
4059e5:	8a c1                	mov    %cl,%al
4059e7:	0c 20                	or     $0x20,%al
4059e9:	80 f9 5c             	cmp    $0x5c,%cl
4059ec:	75 05                	jne    0x4059f3
4059ee:	38 4a 01             	cmp    %cl,0x1(%edx)
4059f1:	74 0e                	je     0x405a01
4059f3:	3c 61                	cmp    $0x61,%al
4059f5:	7c 0f                	jl     0x405a06
4059f7:	3c 7a                	cmp    $0x7a,%al
4059f9:	7f 0b                	jg     0x405a06
4059fb:	80 7a 01 3a          	cmpb   $0x3a,0x1(%edx)
4059ff:	75 05                	jne    0x405a06
405a01:	33 c0                	xor    %eax,%eax
405a03:	40                   	inc    %eax
405a04:	eb 02                	jmp    0x405a08
405a06:	33 c0                	xor    %eax,%eax
405a08:	c2 04 00             	ret    $0x4
405a0b:	53                   	push   %ebx
405a0c:	56                   	push   %esi
405a0d:	8b 35 2c 72 40 00    	mov    0x40722c,%esi
405a13:	57                   	push   %edi
405a14:	8b 7c 24 10          	mov    0x10(%esp),%edi
405a18:	57                   	push   %edi
405a19:	ff d6                	call   *%esi
405a1b:	8b d8                	mov    %eax,%ebx
405a1d:	53                   	push   %ebx
405a1e:	ff d6                	call   *%esi
405a20:	8a 0f                	mov    (%edi),%cl
405a22:	84 c9                	test   %cl,%cl
405a24:	74 10                	je     0x405a36
405a26:	80 3b 3a             	cmpb   $0x3a,(%ebx)
405a29:	75 0b                	jne    0x405a36
405a2b:	80 7b 01 5c          	cmpb   $0x5c,0x1(%ebx)
405a2f:	75 05                	jne    0x405a36
405a31:	50                   	push   %eax
405a32:	ff d6                	call   *%esi
405a34:	eb 24                	jmp    0x405a5a
405a36:	80 f9 5c             	cmp    $0x5c,%cl
405a39:	75 1d                	jne    0x405a58
405a3b:	38 4f 01             	cmp    %cl,0x1(%edi)
405a3e:	75 18                	jne    0x405a58
405a40:	6a 02                	push   $0x2
405a42:	5e                   	pop    %esi
405a43:	6a 5c                	push   $0x5c
405a45:	50                   	push   %eax
405a46:	4e                   	dec    %esi
405a47:	e8 51 ff ff ff       	call   0x40599d
405a4c:	80 38 00             	cmpb   $0x0,(%eax)
405a4f:	74 07                	je     0x405a58
405a51:	40                   	inc    %eax
405a52:	85 f6                	test   %esi,%esi
405a54:	75 ed                	jne    0x405a43
405a56:	eb 02                	jmp    0x405a5a
405a58:	33 c0                	xor    %eax,%eax
405a5a:	5f                   	pop    %edi
405a5b:	5e                   	pop    %esi
405a5c:	5b                   	pop    %ebx
405a5d:	c2 04 00             	ret    $0x4
405a60:	56                   	push   %esi
405a61:	57                   	push   %edi
405a62:	ff 74 24 0c          	push   0xc(%esp)
405a66:	be 10 11 42 00       	mov    $0x421110,%esi
405a6b:	56                   	push   %esi
405a6c:	e8 69 05 00 00       	call   0x405fda
405a71:	56                   	push   %esi
405a72:	e8 94 ff ff ff       	call   0x405a0b
405a77:	8b f8                	mov    %eax,%edi
405a79:	85 ff                	test   %edi,%edi
405a7b:	75 04                	jne    0x405a81
405a7d:	33 c0                	xor    %eax,%eax
405a7f:	eb 52                	jmp    0x405ad3
405a81:	57                   	push   %edi
405a82:	e8 bd 07 00 00       	call   0x406244
405a87:	f6 05 1c 37 42 00 80 	testb  $0x80,0x42371c
405a8e:	74 0a                	je     0x405a9a
405a90:	8a 07                	mov    (%edi),%al
405a92:	84 c0                	test   %al,%al
405a94:	74 e7                	je     0x405a7d
405a96:	3c 5c                	cmp    $0x5c,%al
405a98:	74 e3                	je     0x405a7d
405a9a:	2b fe                	sub    %esi,%edi
405a9c:	eb 14                	jmp    0x405ab2
405a9e:	e8 3a 08 00 00       	call   0x4062dd
405aa3:	85 c0                	test   %eax,%eax
405aa5:	74 05                	je     0x405aac
405aa7:	f6 00 10             	testb  $0x10,(%eax)
405aaa:	74 d1                	je     0x405a7d
405aac:	56                   	push   %esi
405aad:	e8 07 ff ff ff       	call   0x4059b9
405ab2:	56                   	push   %esi
405ab3:	e8 38 05 00 00       	call   0x405ff0
405ab8:	3b c7                	cmp    %edi,%eax
405aba:	56                   	push   %esi
405abb:	7f e1                	jg     0x405a9e
405abd:	e8 b0 fe ff ff       	call   0x405972
405ac2:	56                   	push   %esi
405ac3:	ff 15 fc 70 40 00    	call   *0x4070fc
405ac9:	33 c9                	xor    %ecx,%ecx
405acb:	83 f8 ff             	cmp    $0xffffffff,%eax
405ace:	0f 95 c1             	setne  %cl
405ad1:	8b c1                	mov    %ecx,%eax
405ad3:	5f                   	pop    %edi
405ad4:	5e                   	pop    %esi
405ad5:	c2 04 00             	ret    $0x4
405ad8:	55                   	push   %ebp
405ad9:	8b ec                	mov    %esp,%ebp
405adb:	51                   	push   %ecx
405adc:	53                   	push   %ebx