405708:	8b 4f 10             	mov    0x10(%edi),%ecx
40570b:	e8 66 e5 ff ff       	call   0x403c76
405710:	8b 4f 14             	mov    0x14(%edi),%ecx
405713:	88 85 3c ff ff ff    	mov    %al,-0xc4(%ebp)
405719:	e8 58 e5 ff ff       	call   0x403c76
40571e:	88 85 40 ff ff ff    	mov    %al,-0xc0(%ebp)
405724:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405727:	50                   	push   %eax
405728:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
40572e:	c7 85 44 ff ff ff 12 	movl   $0x12,-0xbc(%ebp)
405735:	00 00 00
405738:	50                   	push   %eax
405739:	53                   	push   %ebx
40573a:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
405740:	89 9d 48 ff ff ff    	mov    %ebx,-0xb8(%ebp)
405746:	50                   	push   %eax
405747:	8d 85 4f ff ff ff    	lea    -0xb1(%ebp),%eax
40574d:	50                   	push   %eax
40574e:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
405754:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
40575a:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
405760:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
405766:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
40576c:	50                   	push   %eax
40576d:	ff 15 24 f0 40 00    	call   *0x40f024
405773:	8b f0                	mov    %eax,%esi
405775:	83 fe 7a             	cmp    $0x7a,%esi
405778:	0f 85 d4 00 00 00    	jne    0x405852
40577e:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
405784:	ff 15 a4 f0 40 00    	call   *0x40f0a4
40578a:	8b f8                	mov    %eax,%edi
40578c:	85 ff                	test   %edi,%edi
40578e:	0f 84 8f 01 00 00    	je     0x405923
405794:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405797:	50                   	push   %eax
405798:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
40579e:	50                   	push   %eax
40579f:	57                   	push   %edi
4057a0:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
4057a6:	50                   	push   %eax
4057a7:	8d 85 4f ff ff ff    	lea    -0xb1(%ebp),%eax
4057ad:	50                   	push   %eax
4057ae:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
4057b4:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
4057ba:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
4057c0:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
4057c6:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
4057cc:	50                   	push   %eax
4057cd:	ff 15 24 f0 40 00    	call   *0x40f024
4057d3:	8b f0                	mov    %eax,%esi
4057d5:	85 f6                	test   %esi,%esi
4057d7:	75 72                	jne    0x40584b
4057d9:	6a 20                	push   $0x20
4057db:	8d 45 b8             	lea    -0x48(%ebp),%eax
4057de:	50                   	push   %eax
4057df:	68 5c 04 00 00       	push   $0x45c
4057e4:	53                   	push   %ebx
4057e5:	ff 15 20 f1 40 00    	call   *0x40f120
4057eb:	85 c0                	test   %eax,%eax
4057ed:	75 04                	jne    0x4057f3
4057ef:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
4057f3:	6a 20                	push   $0x20
4057f5:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4057fb:	50                   	push   %eax
4057fc:	68 5b 04 00 00       	push   $0x45b
405801:	53                   	push   %ebx
405802:	ff 15 20 f1 40 00    	call   *0x40f120
405808:	85 c0                	test   %eax,%eax
40580a:	75 07                	jne    0x405813
40580c:	66 89 85 60 ff ff ff 	mov    %ax,-0xa0(%ebp)
405813:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
405819:	8d 45 b8             	lea    -0x48(%ebp),%eax
40581c:	50                   	push   %eax
40581d:	0f b6 85 4f ff ff ff 	movzbl -0xb1(%ebp),%eax
405824:	50                   	push   %eax
405825:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40582b:	50                   	push   %eax
40582c:	68 d0 18 40 00       	push   $0x4018d0
405831:	e8 84 d0 ff ff       	call   0x4028ba
405836:	83 c4 14             	add    $0x14,%esp
405839:	8b d7                	mov    %edi,%edx
40583b:	b9 2c 19 40 00       	mov    $0x40192c,%ecx
405840:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
405846:	e8 ef dc ff ff       	call   0x40353a
40584b:	57                   	push   %edi
40584c:	ff 15 b0 f0 40 00    	call   *0x40f0b0
405852:	81 fe 1d 00 ff ef    	cmp    $0xefff001d,%esi
405858:	0f 85 c5 00 00 00    	jne    0x405923
40585e:	6a 20                	push   $0x20
405860:	8d 45 b8             	lea    -0x48(%ebp),%eax
405863:	50                   	push   %eax
405864:	68 5d 04 00 00       	push   $0x45d
405869:	53                   	push   %ebx
40586a:	ff 15 20 f1 40 00    	call   *0x40f120
405870:	85 c0                	test   %eax,%eax
405872:	75 04                	jne    0x405878
405874:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
405878:	6a 20                	push   $0x20
40587a:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
405880:	50                   	push   %eax
405881:	68 5b 04 00 00       	push   $0x45b
405886:	53                   	push   %ebx
405887:	ff 15 20 f1 40 00    	call   *0x40f120
40588d:	85 c0                	test   %eax,%eax
40588f:	75 07                	jne    0x405898
405891:	66 89 85 60 ff ff ff 	mov    %ax,-0xa0(%ebp)
405898:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
40589e:	8d 45 b8             	lea    -0x48(%ebp),%eax
4058a1:	50                   	push   %eax
4058a2:	0f b6 85 4f ff ff ff 	movzbl -0xb1(%ebp),%eax
4058a9:	50                   	push   %eax
4058aa:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4058b0:	50                   	push   %eax
4058b1:	68 40 19 40 00       	push   $0x401940
4058b6:	e8 ff cf ff ff       	call   0x4028ba
4058bb:	83 c4 14             	add    $0x14,%esp
4058be:	8d 55 a4             	lea    -0x5c(%ebp),%edx
4058c1:	b9 04 14 40 00       	mov    $0x401404,%ecx
4058c6:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
4058cc:	e8 69 dc ff ff       	call   0x40353a
4058d1:	eb 50                	jmp    0x405923
4058d3:	6a 20                	push   $0x20
4058d5:	8d 45 b8             	lea    -0x48(%ebp),%eax
4058d8:	50                   	push   %eax
4058d9:	68 5f 04 00 00       	push   $0x45f
4058de:	53                   	push   %ebx
4058df:	ff 15 20 f1 40 00    	call   *0x40f120
4058e5:	85 c0                	test   %eax,%eax
4058e7:	75 04                	jne    0x4058ed
4058e9:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
4058ed:	ff 77 0c             	push   0xc(%edi)
4058f0:	eb 1d                	jmp    0x40590f
4058f2:	6a 20                	push   $0x20
4058f4:	8d 45 b8             	lea    -0x48(%ebp),%eax
4058f7:	50                   	push   %eax
4058f8:	68 5e 04 00 00       	push   $0x45e
4058fd:	53                   	push   %ebx
4058fe:	ff 15 20 f1 40 00    	call   *0x40f120
405904:	85 c0                	test   %eax,%eax
405906:	75 04                	jne    0x40590c
405908:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40590c:	ff 77 08             	push   0x8(%edi)
40590f:	8d 45 b8             	lea    -0x48(%ebp),%eax
405912:	50                   	push   %eax
405913:	68 a0 19 40 00       	push   $0x4019a0
405918:	e8 9d cf ff ff       	call   0x4028ba
40591d:	83 c4 0c             	add    $0xc,%esp
405920:	6a 57                	push   $0x57
405922:	5e                   	pop    %esi
405923:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405926:	8b c6                	mov    %esi,%eax
405928:	5f                   	pop    %edi
405929:	5e                   	pop    %esi
40592a:	33 cd                	xor    %ebp,%ecx
40592c:	5b                   	pop    %ebx
40592d:	e8 9e 31 00 00       	call   0x408ad0
405932:	c9                   	leave
405933:	c3                   	ret
405934:	8b ff                	mov    %edi,%edi
405936:	55                   	push   %ebp
405937:	8b ec                	mov    %esp,%ebp
405939:	83 ec 5c             	sub    $0x5c,%esp
40593c:	a1 04 a0 40 00       	mov    0x40a004,%eax
405941:	33 c5                	xor    %ebp,%eax
405943:	89 45 fc             	mov    %eax,-0x4(%ebp)
405946:	53                   	push   %ebx
405947:	56                   	push   %esi
405948:	57                   	push   %edi
405949:	6a 40                	push   $0x40
40594b:	33 ff                	xor    %edi,%edi
40594d:	8d 45 b8             	lea    -0x48(%ebp),%eax
405950:	57                   	push   %edi
405951:	50                   	push   %eax
405952:	8b da                	mov    %edx,%ebx
405954:	8b f1                	mov    %ecx,%esi
405956:	e8 89 37 00 00       	call   0x4090e4
40595b:	83 c4 0c             	add    $0xc,%esp
40595e:	83 fe 03             	cmp    $0x3,%esi
405961:	74 0a                	je     0x40596d
405963:	6a 0a                	push   $0xa
405965:	59                   	pop    %ecx
405966:	e8 f4 d0 ff ff       	call   0x402a5f
40596b:	eb 4e                	jmp    0x4059bb
40596d:	8b 4b 08             	mov    0x8(%ebx),%ecx
405970:	8d 55 a8             	lea    -0x58(%ebp),%edx
405973:	e8 1c e1 ff ff       	call   0x403a94
405978:	84 c0                	test   %al,%al
40597a:	74 0e                	je     0x40598a
40597c:	8d 45 a8             	lea    -0x58(%ebp),%eax
40597f:	50                   	push   %eax
405980:	ff 15 8c f0 40 00    	call   *0x40f08c
405986:	8b f8                	mov    %eax,%edi
405988:	eb 31                	jmp    0x4059bb
40598a:	6a 20                	push   $0x20
40598c:	8d 45 b8             	lea    -0x48(%ebp),%eax
40598f:	50                   	push   %eax
405990:	68 5e 04 00 00       	push   $0x45e
405995:	57                   	push   %edi
405996:	ff 15 20 f1 40 00    	call   *0x40f120
40599c:	85 c0                	test   %eax,%eax
40599e:	75 04                	jne    0x4059a4
4059a0:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
4059a4:	ff 73 08             	push   0x8(%ebx)
4059a7:	8d 45 b8             	lea    -0x48(%ebp),%eax
4059aa:	50                   	push   %eax
4059ab:	68 a0 19 40 00       	push   $0x4019a0
4059b0:	e8 05 cf ff ff       	call   0x4028ba
4059b5:	83 c4 0c             	add    $0xc,%esp
4059b8:	6a 57                	push   $0x57
4059ba:	5f                   	pop    %edi
4059bb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4059be:	8b c7                	mov    %edi,%eax
4059c0:	5f                   	pop    %edi
4059c1:	5e                   	pop    %esi
4059c2:	33 cd                	xor    %ebp,%ecx
4059c4:	5b                   	pop    %ebx
4059c5:	e8 06 31 00 00       	call   0x408ad0
4059ca:	c9                   	leave
4059cb:	c3                   	ret
4059cc:	8b ff                	mov    %edi,%edi
4059ce:	55                   	push   %ebp
4059cf:	8b ec                	mov    %esp,%ebp
4059d1:	81 ec d8 04 00 00    	sub    $0x4d8,%esp
4059d7:	a1 04 a0 40 00       	mov    0x40a004,%eax
4059dc:	33 c5                	xor    %ebp,%eax
4059de:	89 45 f8             	mov    %eax,-0x8(%ebp)
4059e1:	53                   	push   %ebx
4059e2:	56                   	push   %esi
4059e3:	57                   	push   %edi
4059e4:	68 02 04 00 00       	push   $0x402
4059e9:	33 db                	xor    %ebx,%ebx
4059eb:	8d 85 8c fb ff ff    	lea    -0x474(%ebp),%eax
4059f1:	8b f1                	mov    %ecx,%esi
4059f3:	89 9d 80 fb ff ff    	mov    %ebx,-0x480(%ebp)
4059f9:	53                   	push   %ebx
4059fa:	50                   	push   %eax
4059fb:	8b fa                	mov    %edx,%edi
4059fd:	89 b5 84 fb ff ff    	mov    %esi,-0x47c(%ebp)
405a03:	e8 dc 36 00 00       	call   0x4090e4
405a08:	6a 40                	push   $0x40
405a0a:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405a0d:	53                   	push   %ebx
405a0e:	50                   	push   %eax
405a0f:	e8 d0 36 00 00       	call   0x4090e4
405a14:	83 c4 18             	add    $0x18,%esp
405a17:	33 c9                	xor    %ecx,%ecx
405a19:	6a 14                	push   $0x14
405a1b:	58                   	pop    %eax
405a1c:	89 85 88 fb ff ff    	mov    %eax,-0x478(%ebp)
405a22:	3b f0                	cmp    %eax,%esi
405a24:	7d 19                	jge    0x405a3f
405a26:	38 4d 08             	cmp    %cl,0x8(%ebp)
405a29:	0f 95 c1             	setne  %cl
405a2c:	8d 0c 4d 09 00 00 00 	lea    0x9(,%ecx,2),%ecx
405a33:	e8 27 d0 ff ff       	call   0x402a5f
405a38:	8b fb                	mov    %ebx,%edi
405a3a:	e9 8f 03 00 00       	jmp    0x405dce
405a3f:	8b 47 08             	mov    0x8(%edi),%eax
405a42:	89 85 60 fb ff ff    	mov    %eax,-0x4a0(%ebp)
405a48:	8b 47 0c             	mov    0xc(%edi),%eax
405a4b:	6a 2a                	push   $0x2a
405a4d:	5a                   	pop    %edx
405a4e:	89 8d 68 fb ff ff    	mov    %ecx,-0x498(%ebp)
405a54:	0f b7 00             	movzwl (%eax),%eax
405a57:	66 3b c2             	cmp    %dx,%ax
405a5a:	74 11                	je     0x405a6d
405a5c:	83 f8 74             	cmp    $0x74,%eax
405a5f:	74 0c                	je     0x405a6d
405a61:	c6 85 78 fb ff ff 01 	movb   $0x1,-0x488(%ebp)
405a68:	83 f8 54             	cmp    $0x54,%eax
405a6b:	75 06                	jne    0x405a73
405a6d:	88 8d 78 fb ff ff    	mov    %cl,-0x488(%ebp)
405a73:	8b 47 10             	mov    0x10(%edi),%eax
405a76:	66 39 10             	cmp    %dx,(%eax)
405a79:	74 6a                	je     0x405ae5
405a7b:	8b d8                	mov    %eax,%ebx
405a7d:	8b cb                	mov    %ebx,%ecx
405a7f:	8d 51 02             	lea    0x2(%ecx),%edx
405a82:	66 8b 01             	mov    (%ecx),%ax
405a85:	83 c1 02             	add    $0x2,%ecx
405a88:	66 3b 85 80 fb ff ff 	cmp    -0x480(%ebp),%ax
405a8f:	75 f1                	jne    0x405a82
405a91:	2b ca                	sub    %edx,%ecx
405a93:	d1 f9                	sar    $1,%ecx
405a95:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
405a9b:	0f 87 48 03 00 00    	ja     0x405de9
405aa1:	6a 2a                	push   $0x2a
405aa3:	5a                   	pop    %edx
405aa4:	85 db                	test   %ebx,%ebx
405aa6:	74 3d                	je     0x405ae5
405aa8:	8b 4f 14             	mov    0x14(%edi),%ecx
405aab:	66 39 11             	cmp    %dx,(%ecx)
405aae:	0f 84 1e 03 00 00    	je     0x405dd2
405ab4:	e8 bd e1 ff ff       	call   0x403c76
405ab9:	53                   	push   %ebx
405aba:	ba 00 01 00 00       	mov    $0x100,%edx
405abf:	0f b7 f0             	movzwl %ax,%esi
405ac2:	8d 8d 8c fd ff ff    	lea    -0x274(%ebp),%ecx
405ac8:	e8 93 cc ff ff       	call   0x402760
405acd:	33 c0                	xor    %eax,%eax
405acf:	66 89 75 8c          	mov    %si,-0x74(%ebp)
405ad3:	8b b5 84 fb ff ff    	mov    -0x47c(%ebp),%esi
405ad9:	6a 2a                	push   $0x2a
405adb:	66 89 85 8c fb ff ff 	mov    %ax,-0x474(%ebp)
405ae2:	5a                   	pop    %edx
405ae3:	eb 0c                	jmp    0x405af1
405ae5:	8b 47 14             	mov    0x14(%edi),%eax
405ae8:	66 39 10             	cmp    %dx,(%eax)
405aeb:	0f 85 e1 02 00 00    	jne    0x405dd2
405af1:	8b 47 18             	mov    0x18(%edi),%eax
405af4:	66 39 10             	cmp    %dx,(%eax)
405af7:	74 06                	je     0x405aff
405af9:	89 85 68 fb ff ff    	mov    %eax,-0x498(%ebp)
405aff:	8b 4f 1c             	mov    0x1c(%edi),%ecx
405b02:	66 39 11             	cmp    %dx,(%ecx)
405b05:	74 0d                	je     0x405b14
405b07:	e8 6a e1 ff ff       	call   0x403c76
405b0c:	89 85 80 fb ff ff    	mov    %eax,-0x480(%ebp)
405b12:	eb 07                	jmp    0x405b1b
405b14:	83 8d 80 fb ff ff ff 	orl    $0xffffffff,-0x480(%ebp)
405b1b:	8b 4f 20             	mov    0x20(%edi),%ecx
405b1e:	e8 53 e1 ff ff       	call   0x403c76
405b23:	6a 09                	push   $0x9
405b25:	51                   	push   %ecx
405b26:	8b d7                	mov    %edi,%edx
405b28:	89 85 64 fb ff ff    	mov    %eax,-0x49c(%ebp)
405b2e:	8d 8d 2c fb ff ff    	lea    -0x4d4(%ebp),%ecx
405b34:	e8 0d e2 ff ff       	call   0x403d46
405b39:	8b 4f 48             	mov    0x48(%edi),%ecx
405b3c:	33 c0                	xor    %eax,%eax
405b3e:	6a 2a                	push   $0x2a
405b40:	5a                   	pop    %edx
405b41:	89 85 7c fb ff ff    	mov    %eax,-0x484(%ebp)
405b47:	66 39 11             	cmp    %dx,(%ecx)
405b4a:	74 21                	je     0x405b6d
405b4c:	51                   	push   %ecx
405b4d:	8d 95 7c fb ff ff    	lea    -0x484(%ebp),%edx
405b53:	e8 7a d4 ff ff       	call   0x402fd2
405b58:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
405b5e:	8d 51 01             	lea    0x1(%ecx),%edx
405b61:	8a 01                	mov    (%ecx),%al
405b63:	41                   	inc    %ecx
405b64:	84 c0                	test   %al,%al
405b66:	75 f9                	jne    0x405b61
405b68:	2b ca                	sub    %edx,%ecx
405b6a:	8d 41 01             	lea    0x1(%ecx),%eax
405b6d:	8b 4f 4c             	mov    0x4c(%edi),%ecx
405b70:	89 85 84 fb ff ff    	mov    %eax,-0x47c(%ebp)
405b76:	e8 fb e0 ff ff       	call   0x403c76
405b7b:	8b c8                	mov    %eax,%ecx