40a8be:	50                   	push   %eax
40a8bf:	6a 00                	push   $0x0
40a8c1:	57                   	push   %edi
40a8c2:	e8 fd 4a 00 00       	call   0x40f3c4
40a8c7:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a8ca:	83 c4 0c             	add    $0xc,%esp
40a8cd:	83 c8 ff             	or     $0xffffffff,%eax
40a8d0:	85 f6                	test   %esi,%esi
40a8d2:	74 0d                	je     0x40a8e1
40a8d4:	52                   	push   %edx
40a8d5:	ff 15 b8 20 41 00    	call   *0x4120b8
40a8db:	3b c6                	cmp    %esi,%eax
40a8dd:	7e 02                	jle    0x40a8e1
40a8df:	8b c6                	mov    %esi,%eax
40a8e1:	56                   	push   %esi
40a8e2:	57                   	push   %edi
40a8e3:	50                   	push   %eax
40a8e4:	ff 75 fc             	push   -0x4(%ebp)
40a8e7:	6a 00                	push   $0x0
40a8e9:	6a 01                	push   $0x1
40a8eb:	ff 15 a0 20 41 00    	call   *0x4120a0
40a8f1:	85 c0                	test   %eax,%eax
40a8f3:	75 45                	jne    0x40a93a
40a8f5:	ff 15 48 20 41 00    	call   *0x412048
40a8fb:	85 c0                	test   %eax,%eax
40a8fd:	75 0b                	jne    0x40a90a
40a8ff:	68 2b 04 00 00       	push   $0x42b
40a904:	ff 15 74 20 41 00    	call   *0x412074
40a90a:	85 ff                	test   %edi,%edi
40a90c:	74 42                	je     0x40a950
40a90e:	85 f6                	test   %esi,%esi
40a910:	74 3e                	je     0x40a950
40a912:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
40a919:	50                   	push   %eax
40a91a:	6a 00                	push   $0x0
40a91c:	57                   	push   %edi
40a91d:	e8 a2 4a 00 00       	call   0x40f3c4
40a922:	83 c4 0c             	add    $0xc,%esp
40a925:	eb 29                	jmp    0x40a950
40a927:	03 c9                	add    %ecx,%ecx
40a929:	51                   	push   %ecx
40a92a:	6a 00                	push   $0x0
40a92c:	57                   	push   %edi
40a92d:	e8 92 4a 00 00       	call   0x40f3c4
40a932:	83 c4 0c             	add    $0xc,%esp
40a935:	33 c0                	xor    %eax,%eax
40a937:	40                   	inc    %eax
40a938:	eb 18                	jmp    0x40a952
40a93a:	89 03                	mov    %eax,(%ebx)
40a93c:	eb f7                	jmp    0x40a935
40a93e:	ff 15 48 20 41 00    	call   *0x412048
40a944:	85 c0                	test   %eax,%eax
40a946:	75 08                	jne    0x40a950
40a948:	6a 57                	push   $0x57
40a94a:	ff 15 74 20 41 00    	call   *0x412074
40a950:	33 c0                	xor    %eax,%eax
40a952:	5f                   	pop    %edi
40a953:	5e                   	pop    %esi
40a954:	5b                   	pop    %ebx
40a955:	c9                   	leave
40a956:	c2 04 00             	ret    $0x4
40a959:	8b ff                	mov    %edi,%edi
40a95b:	55                   	push   %ebp
40a95c:	8b ec                	mov    %esp,%ebp
40a95e:	83 ec 44             	sub    $0x44,%esp
40a961:	a1 44 10 41 00       	mov    0x411044,%eax
40a966:	33 c5                	xor    %ebp,%eax
40a968:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a96b:	33 c0                	xor    %eax,%eax
40a96d:	89 55 bc             	mov    %edx,-0x44(%ebp)
40a970:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a973:	89 45 d0             	mov    %eax,-0x30(%ebp)
40a976:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40a979:	89 45 de             	mov    %eax,-0x22(%ebp)
40a97c:	89 45 e2             	mov    %eax,-0x1e(%ebp)
40a97f:	89 4d c0             	mov    %ecx,-0x40(%ebp)
40a982:	53                   	push   %ebx
40a983:	8b d8                	mov    %eax,%ebx
40a985:	56                   	push   %esi
40a986:	57                   	push   %edi
40a987:	8d 7d ec             	lea    -0x14(%ebp),%edi
40a98a:	ab                   	stos   %eax,%es:(%edi)
40a98b:	ab                   	stos   %eax,%es:(%edi)
40a98c:	ab                   	stos   %eax,%es:(%edi)
40a98d:	ab                   	stos   %eax,%es:(%edi)
40a98e:	85 c9                	test   %ecx,%ecx
40a990:	75 1b                	jne    0x40a9ad
40a992:	ff 15 48 20 41 00    	call   *0x412048
40a998:	85 c0                	test   %eax,%eax
40a99a:	0f 85 15 02 00 00    	jne    0x40abb5
40a9a0:	6a 57                	push   $0x57
40a9a2:	ff 15 74 20 41 00    	call   *0x412074
40a9a8:	e9 08 02 00 00       	jmp    0x40abb5
40a9ad:	6a f6                	push   $0xfffffff6
40a9af:	ff 15 58 20 41 00    	call   *0x412058
40a9b5:	8b f0                	mov    %eax,%esi
40a9b7:	85 f6                	test   %esi,%esi
40a9b9:	0f 84 f6 01 00 00    	je     0x40abb5
40a9bf:	8d 55 c4             	lea    -0x3c(%ebp),%edx
40a9c2:	8b ce                	mov    %esi,%ecx
40a9c4:	e8 09 f9 ff ff       	call   0x40a2d2
40a9c9:	33 d2                	xor    %edx,%edx
40a9cb:	85 c0                	test   %eax,%eax
40a9cd:	0f 94 c2             	sete   %dl
40a9d0:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40a9d3:	85 c0                	test   %eax,%eax
40a9d5:	74 14                	je     0x40a9eb
40a9d7:	6a 01                	push   $0x1
40a9d9:	56                   	push   %esi
40a9da:	ff 15 9c 20 41 00    	call   *0x41209c
40a9e0:	85 c0                	test   %eax,%eax
40a9e2:	0f 84 cd 01 00 00    	je     0x40abb5
40a9e8:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40a9eb:	33 c0                	xor    %eax,%eax
40a9ed:	8d 7d dc             	lea    -0x24(%ebp),%edi
40a9f0:	ab                   	stos   %eax,%es:(%edi)
40a9f1:	ab                   	stos   %eax,%es:(%edi)
40a9f2:	66 ab                	stos   %ax,%es:(%edi)
40a9f4:	33 c0                	xor    %eax,%eax
40a9f6:	8d 7d e8             	lea    -0x18(%ebp),%edi
40a9f9:	ab                   	stos   %eax,%es:(%edi)
40a9fa:	ab                   	stos   %eax,%es:(%edi)
40a9fb:	ab                   	stos   %eax,%es:(%edi)
40a9fc:	ab                   	stos   %eax,%es:(%edi)
40a9fd:	ab                   	stos   %eax,%es:(%edi)
40a9fe:	8b 7d c0             	mov    -0x40(%ebp),%edi
40aa01:	8d 45 c8             	lea    -0x38(%ebp),%eax
40aa04:	6a 00                	push   $0x0
40aa06:	50                   	push   %eax
40aa07:	6a 01                	push   $0x1
40aa09:	83 fa 01             	cmp    $0x1,%edx
40aa0c:	75 43                	jne    0x40aa51
40aa0e:	8d 45 db             	lea    -0x25(%ebp),%eax
40aa11:	50                   	push   %eax
40aa12:	56                   	push   %esi
40aa13:	ff 15 98 20 41 00    	call   *0x412098
40aa19:	85 c0                	test   %eax,%eax
40aa1b:	0f 84 94 01 00 00    	je     0x40abb5
40aa21:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
40aa25:	0f 84 3f 01 00 00    	je     0x40ab6a
40aa2b:	8a 45 db             	mov    -0x25(%ebp),%al
40aa2e:	8d 55 e8             	lea    -0x18(%ebp),%edx
40aa31:	88 45 dc             	mov    %al,-0x24(%ebp)
40aa34:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40aa37:	8d 45 c8             	lea    -0x38(%ebp),%eax
40aa3a:	c7 45 c8 0a 00 00 00 	movl   $0xa,-0x38(%ebp)
40aa41:	50                   	push   %eax
40aa42:	e8 29 fe ff ff       	call   0x40a870
40aa47:	66 8b 4d e8          	mov    -0x18(%ebp),%cx
40aa4b:	66 89 4d cc          	mov    %cx,-0x34(%ebp)
40aa4f:	eb 17                	jmp    0x40aa68
40aa51:	8d 45 cc             	lea    -0x34(%ebp),%eax
40aa54:	50                   	push   %eax
40aa55:	56                   	push   %esi
40aa56:	ff 15 94 20 41 00    	call   *0x412094
40aa5c:	85 c0                	test   %eax,%eax
40aa5e:	0f 84 47 01 00 00    	je     0x40abab
40aa64:	66 8b 4d cc          	mov    -0x34(%ebp),%cx
40aa68:	66 83 f9 0d          	cmp    $0xd,%cx
40aa6c:	0f 84 f8 00 00 00    	je     0x40ab6a
40aa72:	6a 08                	push   $0x8
40aa74:	58                   	pop    %eax
40aa75:	66 3b c8             	cmp    %ax,%cx
40aa78:	0f 85 a3 00 00 00    	jne    0x40ab21
40aa7e:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40aa81:	85 db                	test   %ebx,%ebx
40aa83:	0f 84 78 ff ff ff    	je     0x40aa01
40aa89:	50                   	push   %eax
40aa8a:	68 70 18 40 00       	push   $0x401870
40aa8f:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aa92:	6a 0a                	push   $0xa
40aa94:	50                   	push   %eax
40aa95:	e8 8a e9 ff ff       	call   0x409424
40aa9a:	83 c4 10             	add    $0x10,%esp
40aa9d:	8d 45 d0             	lea    -0x30(%ebp),%eax
40aaa0:	6a 00                	push   $0x0
40aaa2:	50                   	push   %eax
40aaa3:	6a 01                	push   $0x1
40aaa5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aaa8:	50                   	push   %eax
40aaa9:	6a f5                	push   $0xfffffff5
40aaab:	ff 15 58 20 41 00    	call   *0x412058
40aab1:	50                   	push   %eax
40aab2:	ff 15 54 20 41 00    	call   *0x412054
40aab8:	6a 00                	push   $0x0
40aaba:	68 70 18 40 00       	push   $0x401870
40aabf:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aac2:	6a 0a                	push   $0xa
40aac4:	50                   	push   %eax
40aac5:	e8 5a e9 ff ff       	call   0x409424
40aaca:	83 c4 10             	add    $0x10,%esp
40aacd:	8d 45 d0             	lea    -0x30(%ebp),%eax
40aad0:	6a 00                	push   $0x0
40aad2:	50                   	push   %eax
40aad3:	6a 01                	push   $0x1
40aad5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aad8:	50                   	push   %eax
40aad9:	6a f5                	push   $0xfffffff5
40aadb:	ff 15 58 20 41 00    	call   *0x412058
40aae1:	50                   	push   %eax
40aae2:	ff 15 54 20 41 00    	call   *0x412054
40aae8:	6a 08                	push   $0x8
40aaea:	68 70 18 40 00       	push   $0x401870
40aaef:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aaf2:	6a 0a                	push   $0xa
40aaf4:	50                   	push   %eax
40aaf5:	e8 2a e9 ff ff       	call   0x409424
40aafa:	83 c4 10             	add    $0x10,%esp
40aafd:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab00:	6a 00                	push   $0x0
40ab02:	50                   	push   %eax
40ab03:	6a 01                	push   $0x1
40ab05:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ab08:	50                   	push   %eax
40ab09:	6a f5                	push   $0xfffffff5
40ab0b:	ff 15 58 20 41 00    	call   *0x412058
40ab11:	50                   	push   %eax
40ab12:	ff 15 54 20 41 00    	call   *0x412054
40ab18:	4b                   	dec    %ebx
40ab19:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40ab1c:	e9 e0 fe ff ff       	jmp    0x40aa01
40ab21:	8b 45 bc             	mov    -0x44(%ebp),%eax
40ab24:	48                   	dec    %eax
40ab25:	3b d8                	cmp    %eax,%ebx
40ab27:	75 0f                	jne    0x40ab38
40ab29:	6a 00                	push   $0x0
40ab2b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab2e:	50                   	push   %eax
40ab2f:	6a 01                	push   $0x1
40ab31:	68 78 18 40 00       	push   $0x401878
40ab36:	eb 21                	jmp    0x40ab59
40ab38:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40ab3b:	6a 0a                	push   $0xa
40ab3d:	58                   	pop    %eax
40ab3e:	66 3b c8             	cmp    %ax,%cx
40ab41:	0f 84 ba fe ff ff    	je     0x40aa01
40ab47:	6a 00                	push   $0x0
40ab49:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab4c:	66 89 0c 5f          	mov    %cx,(%edi,%ebx,2)
40ab50:	50                   	push   %eax
40ab51:	6a 01                	push   $0x1
40ab53:	43                   	inc    %ebx
40ab54:	68 a8 12 40 00       	push   $0x4012a8
40ab59:	6a f5                	push   $0xfffffff5
40ab5b:	ff 15 58 20 41 00    	call   *0x412058
40ab61:	50                   	push   %eax
40ab62:	ff 15 54 20 41 00    	call   *0x412054
40ab68:	eb af                	jmp    0x40ab19
40ab6a:	ff 75 c4             	push   -0x3c(%ebp)
40ab6d:	33 c0                	xor    %eax,%eax
40ab6f:	56                   	push   %esi
40ab70:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
40ab74:	ff 15 9c 20 41 00    	call   *0x41209c
40ab7a:	6a 0a                	push   $0xa
40ab7c:	58                   	pop    %eax
40ab7d:	50                   	push   %eax
40ab7e:	ba 7c 18 40 00       	mov    $0x40187c,%edx
40ab83:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ab86:	e8 6b f8 ff ff       	call   0x40a3f6
40ab8b:	6a 00                	push   $0x0
40ab8d:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ab90:	51                   	push   %ecx
40ab91:	6a 02                	push   $0x2
40ab93:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ab96:	51                   	push   %ecx
40ab97:	6a f5                	push   $0xfffffff5
40ab99:	ff 15 58 20 41 00    	call   *0x412058
40ab9f:	50                   	push   %eax
40aba0:	ff 15 54 20 41 00    	call   *0x412054
40aba6:	33 c0                	xor    %eax,%eax
40aba8:	40                   	inc    %eax
40aba9:	eb 0c                	jmp    0x40abb7
40abab:	ff 75 c4             	push   -0x3c(%ebp)
40abae:	56                   	push   %esi
40abaf:	ff 15 9c 20 41 00    	call   *0x41209c
40abb5:	33 c0                	xor    %eax,%eax
40abb7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40abba:	5f                   	pop    %edi
40abbb:	5e                   	pop    %esi
40abbc:	33 cd                	xor    %ebp,%ecx
40abbe:	5b                   	pop    %ebx
40abbf:	e8 0c 41 00 00       	call   0x40ecd0
40abc4:	c9                   	leave
40abc5:	c3                   	ret
40abc6:	8b ff                	mov    %edi,%edi
40abc8:	53                   	push   %ebx
40abc9:	56                   	push   %esi
40abca:	8b f1                	mov    %ecx,%esi
40abcc:	57                   	push   %edi
40abcd:	85 f6                	test   %esi,%esi
40abcf:	75 14                	jne    0x40abe5
40abd1:	ff 15 48 20 41 00    	call   *0x412048
40abd7:	85 c0                	test   %eax,%eax
40abd9:	75 21                	jne    0x40abfc
40abdb:	6a 57                	push   $0x57
40abdd:	ff 15 74 20 41 00    	call   *0x412074
40abe3:	eb 17                	jmp    0x40abfc
40abe5:	33 db                	xor    %ebx,%ebx
40abe7:	39 1e                	cmp    %ebx,(%esi)
40abe9:	75 05                	jne    0x40abf0
40abeb:	33 c0                	xor    %eax,%eax
40abed:	40                   	inc    %eax
40abee:	eb 3b                	jmp    0x40ac2b
40abf0:	ff 15 90 20 41 00    	call   *0x412090
40abf6:	8b f8                	mov    %eax,%edi
40abf8:	85 ff                	test   %edi,%edi
40abfa:	75 04                	jne    0x40ac00
40abfc:	33 c0                	xor    %eax,%eax
40abfe:	eb 2b                	jmp    0x40ac2b
40ac00:	8b 0e                	mov    (%esi),%ecx
40ac02:	e8 f3 01 00 00       	call   0x40adfa
40ac07:	83 f8 ff             	cmp    $0xffffffff,%eax
40ac0a:	75 07                	jne    0x40ac13
40ac0c:	68 03 40 00 80       	push   $0x80004003
40ac11:	eb ca                	jmp    0x40abdd
40ac13:	50                   	push   %eax
40ac14:	53                   	push   %ebx
40ac15:	ff 36                	push   (%esi)
40ac17:	e8 a8 47 00 00       	call   0x40f3c4
40ac1c:	83 c4 0c             	add    $0xc,%esp
40ac1f:	ff 36                	push   (%esi)
40ac21:	53                   	push   %ebx
40ac22:	57                   	push   %edi
40ac23:	ff 15 8c 20 41 00    	call   *0x41208c
40ac29:	89 1e                	mov    %ebx,(%esi)
40ac2b:	5f                   	pop    %edi
40ac2c:	5e                   	pop    %esi
40ac2d:	5b                   	pop    %ebx
40ac2e:	c3                   	ret
40ac2f:	8b ff                	mov    %edi,%edi
40ac31:	56                   	push   %esi
40ac32:	8b f1                	mov    %ecx,%esi
40ac34:	85 f6                	test   %esi,%esi
40ac36:	75 0e                	jne    0x40ac46
40ac38:	ff 15 48 20 41 00    	call   *0x412048
40ac3e:	85 c0                	test   %eax,%eax
40ac40:	75 24                	jne    0x40ac66
40ac42:	6a 57                	push   $0x57
40ac44:	eb 1a                	jmp    0x40ac60
40ac46:	ff 15 90 20 41 00    	call   *0x412090
40ac4c:	85 c0                	test   %eax,%eax
40ac4e:	74 16                	je     0x40ac66
40ac50:	56                   	push   %esi
40ac51:	6a 00                	push   $0x0
40ac53:	50                   	push   %eax
40ac54:	ff 15 88 20 41 00    	call   *0x412088
40ac5a:	85 c0                	test   %eax,%eax
40ac5c:	75 0a                	jne    0x40ac68
40ac5e:	6a 06                	push   $0x6
40ac60:	ff 15 74 20 41 00    	call   *0x412074