40a6ff:	68 d3 02 00 00       	push   $0x2d3
40a704:	ff b7 f0 00 00 00    	push   0xf0(%edi)
40a70a:	8b cf                	mov    %edi,%ecx
40a70c:	56                   	push   %esi
40a70d:	e8 64 02 00 00       	call   0x40a976
40a712:	68 d4 02 00 00       	push   $0x2d4
40a717:	ff b7 f4 00 00 00    	push   0xf4(%edi)
40a71d:	46                   	inc    %esi
40a71e:	8b cf                	mov    %edi,%ecx
40a720:	56                   	push   %esi
40a721:	e8 50 02 00 00       	call   0x40a976
40a726:	68 d5 02 00 00       	push   $0x2d5
40a72b:	ff b7 f8 00 00 00    	push   0xf8(%edi)
40a731:	8d 46 01             	lea    0x1(%esi),%eax
40a734:	8b cf                	mov    %edi,%ecx
40a736:	50                   	push   %eax
40a737:	e8 3a 02 00 00       	call   0x40a976
40a73c:	5f                   	pop    %edi
40a73d:	5e                   	pop    %esi
40a73e:	c3                   	ret
40a73f:	8b ff                	mov    %edi,%edi
40a741:	53                   	push   %ebx
40a742:	56                   	push   %esi
40a743:	57                   	push   %edi
40a744:	33 f6                	xor    %esi,%esi
40a746:	8b f9                	mov    %ecx,%edi
40a748:	56                   	push   %esi
40a749:	56                   	push   %esi
40a74a:	68 04 10 00 00       	push   $0x1004
40a74f:	ff b7 84 01 00 00    	push   0x184(%edi)
40a755:	ff 15 40 34 42 00    	call   *0x423440
40a75b:	8b d8                	mov    %eax,%ebx
40a75d:	85 db                	test   %ebx,%ebx
40a75f:	7e 2b                	jle    0x40a78c
40a761:	8d 87 64 01 00 00    	lea    0x164(%edi),%eax
40a767:	56                   	push   %esi
40a768:	8b c8                	mov    %eax,%ecx
40a76a:	ff 15 2c 34 42 00    	call   *0x42342c
40a770:	50                   	push   %eax
40a771:	8b cf                	mov    %edi,%ecx
40a773:	e8 a5 00 00 00       	call   0x40a81d
40a778:	50                   	push   %eax
40a779:	56                   	push   %esi
40a77a:	8b cf                	mov    %edi,%ecx
40a77c:	e8 14 03 00 00       	call   0x40aa95
40a781:	46                   	inc    %esi
40a782:	8d 87 64 01 00 00    	lea    0x164(%edi),%eax
40a788:	3b f3                	cmp    %ebx,%esi
40a78a:	7c db                	jl     0x40a767
40a78c:	5f                   	pop    %edi
40a78d:	5e                   	pop    %esi
40a78e:	5b                   	pop    %ebx
40a78f:	c3                   	ret
40a790:	8b ff                	mov    %edi,%edi
40a792:	55                   	push   %ebp
40a793:	8b ec                	mov    %esp,%ebp
40a795:	83 ec 54             	sub    $0x54,%esp
40a798:	53                   	push   %ebx
40a799:	56                   	push   %esi
40a79a:	57                   	push   %edi
40a79b:	6a 06                	push   $0x6
40a79d:	8b d9                	mov    %ecx,%ebx
40a79f:	8d 7d e8             	lea    -0x18(%ebp),%edi
40a7a2:	59                   	pop    %ecx
40a7a3:	33 c0                	xor    %eax,%eax
40a7a5:	33 f6                	xor    %esi,%esi
40a7a7:	f3 ab                	rep stos %eax,%es:(%edi)
40a7a9:	8b 45 08             	mov    0x8(%ebp),%eax
40a7ac:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a7af:	8d 45 e8             	lea    -0x18(%ebp),%eax
40a7b2:	50                   	push   %eax
40a7b3:	6a ff                	push   $0xffffffff
40a7b5:	68 53 10 00 00       	push   $0x1053
40a7ba:	ff b3 84 01 00 00    	push   0x184(%ebx)
40a7c0:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
40a7c7:	ff 15 40 34 42 00    	call   *0x423440
40a7cd:	8b f8                	mov    %eax,%edi
40a7cf:	83 ff 07             	cmp    $0x7,%edi
40a7d2:	77 40                	ja     0x40a814
40a7d4:	6a 3c                	push   $0x3c
40a7d6:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a7d9:	56                   	push   %esi
40a7da:	50                   	push   %eax
40a7db:	e8 41 1e 01 00       	call   0x41c621
40a7e0:	33 c0                	xor    %eax,%eax
40a7e2:	89 7d b0             	mov    %edi,-0x50(%ebp)
40a7e5:	40                   	inc    %eax
40a7e6:	c7 45 c4 04 01 00 00 	movl   $0x104,-0x3c(%ebp)
40a7ed:	83 c4 0c             	add    $0xc,%esp
40a7f0:	89 45 ac             	mov    %eax,-0x54(%ebp)
40a7f3:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40a7f6:	8b 45 0c             	mov    0xc(%ebp),%eax
40a7f9:	89 45 c0             	mov    %eax,-0x40(%ebp)
40a7fc:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a7ff:	50                   	push   %eax
40a800:	56                   	push   %esi
40a801:	68 4b 10 00 00       	push   $0x104b
40a806:	ff b3 84 01 00 00    	push   0x184(%ebx)
40a80c:	ff 15 40 34 42 00    	call   *0x423440
40a812:	8b f0                	mov    %eax,%esi
40a814:	5f                   	pop    %edi
40a815:	8b c6                	mov    %esi,%eax
40a817:	5e                   	pop    %esi
40a818:	5b                   	pop    %ebx
40a819:	c9                   	leave
40a81a:	c2 0c 00             	ret    $0xc
40a81d:	8b ff                	mov    %edi,%edi
40a81f:	55                   	push   %ebp
40a820:	8b ec                	mov    %esp,%ebp
40a822:	56                   	push   %esi
40a823:	57                   	push   %edi
40a824:	8b 7d 08             	mov    0x8(%ebp),%edi
40a827:	33 d2                	xor    %edx,%edx
40a829:	8b f1                	mov    %ecx,%esi
40a82b:	85 ff                	test   %edi,%edi
40a82d:	75 06                	jne    0x40a835
40a82f:	8b 96 98 00 00 00    	mov    0x98(%esi),%edx
40a835:	83 ff 01             	cmp    $0x1,%edi
40a838:	75 06                	jne    0x40a840
40a83a:	8b 96 9c 00 00 00    	mov    0x9c(%esi),%edx
40a840:	83 ff 02             	cmp    $0x2,%edi
40a843:	75 06                	jne    0x40a84b
40a845:	8b 96 a0 00 00 00    	mov    0xa0(%esi),%edx
40a84b:	83 ff 03             	cmp    $0x3,%edi
40a84e:	75 06                	jne    0x40a856
40a850:	8b 96 a4 00 00 00    	mov    0xa4(%esi),%edx
40a856:	83 ff 04             	cmp    $0x4,%edi
40a859:	75 06                	jne    0x40a861
40a85b:	8b 96 a8 00 00 00    	mov    0xa8(%esi),%edx
40a861:	83 ff 05             	cmp    $0x5,%edi
40a864:	75 06                	jne    0x40a86c
40a866:	8b 96 ac 00 00 00    	mov    0xac(%esi),%edx
40a86c:	83 ff 06             	cmp    $0x6,%edi
40a86f:	75 06                	jne    0x40a877
40a871:	8b 96 b0 00 00 00    	mov    0xb0(%esi),%edx
40a877:	83 ff 07             	cmp    $0x7,%edi
40a87a:	75 06                	jne    0x40a882
40a87c:	8b 96 b4 00 00 00    	mov    0xb4(%esi),%edx
40a882:	83 ff 08             	cmp    $0x8,%edi
40a885:	75 06                	jne    0x40a88d
40a887:	8b 96 b8 00 00 00    	mov    0xb8(%esi),%edx
40a88d:	83 ff 09             	cmp    $0x9,%edi
40a890:	75 06                	jne    0x40a898
40a892:	8b 96 bc 00 00 00    	mov    0xbc(%esi),%edx
40a898:	6a 0b                	push   $0xb
40a89a:	59                   	pop    %ecx
40a89b:	83 ff 0a             	cmp    $0xa,%edi
40a89e:	75 06                	jne    0x40a8a6
40a8a0:	8b 96 c0 00 00 00    	mov    0xc0(%esi),%edx
40a8a6:	53                   	push   %ebx
40a8a7:	8b 1d 38 1f 42 00    	mov    0x421f38,%ebx
40a8ad:	85 db                	test   %ebx,%ebx
40a8af:	74 0e                	je     0x40a8bf
40a8b1:	6a 0c                	push   $0xc
40a8b3:	59                   	pop    %ecx
40a8b4:	83 ff 0b             	cmp    $0xb,%edi
40a8b7:	75 06                	jne    0x40a8bf
40a8b9:	8b 96 c4 00 00 00    	mov    0xc4(%esi),%edx
40a8bf:	8b c1                	mov    %ecx,%eax
40a8c1:	41                   	inc    %ecx
40a8c2:	3b f8                	cmp    %eax,%edi
40a8c4:	75 06                	jne    0x40a8cc
40a8c6:	8b 96 c8 00 00 00    	mov    0xc8(%esi),%edx
40a8cc:	3b f9                	cmp    %ecx,%edi
40a8ce:	75 06                	jne    0x40a8d6
40a8d0:	8b 96 cc 00 00 00    	mov    0xcc(%esi),%edx
40a8d6:	8d 41 01             	lea    0x1(%ecx),%eax
40a8d9:	83 c1 02             	add    $0x2,%ecx
40a8dc:	3b f8                	cmp    %eax,%edi
40a8de:	75 06                	jne    0x40a8e6
40a8e0:	8b 96 d0 00 00 00    	mov    0xd0(%esi),%edx
40a8e6:	3b f9                	cmp    %ecx,%edi
40a8e8:	75 06                	jne    0x40a8f0
40a8ea:	8b 96 d4 00 00 00    	mov    0xd4(%esi),%edx
40a8f0:	8d 41 01             	lea    0x1(%ecx),%eax
40a8f3:	83 c1 02             	add    $0x2,%ecx
40a8f6:	3b f8                	cmp    %eax,%edi
40a8f8:	75 06                	jne    0x40a900
40a8fa:	8b 96 d8 00 00 00    	mov    0xd8(%esi),%edx
40a900:	3b f9                	cmp    %ecx,%edi
40a902:	75 06                	jne    0x40a90a
40a904:	8b 96 dc 00 00 00    	mov    0xdc(%esi),%edx
40a90a:	8d 41 01             	lea    0x1(%ecx),%eax
40a90d:	83 c1 02             	add    $0x2,%ecx
40a910:	3b f8                	cmp    %eax,%edi
40a912:	75 06                	jne    0x40a91a
40a914:	8b 96 e0 00 00 00    	mov    0xe0(%esi),%edx
40a91a:	85 db                	test   %ebx,%ebx
40a91c:	74 0d                	je     0x40a92b
40a91e:	8b c1                	mov    %ecx,%eax
40a920:	41                   	inc    %ecx
40a921:	3b f8                	cmp    %eax,%edi
40a923:	75 06                	jne    0x40a92b
40a925:	8b 96 e4 00 00 00    	mov    0xe4(%esi),%edx
40a92b:	8b c1                	mov    %ecx,%eax
40a92d:	41                   	inc    %ecx
40a92e:	3b f8                	cmp    %eax,%edi
40a930:	75 06                	jne    0x40a938
40a932:	8b 96 e8 00 00 00    	mov    0xe8(%esi),%edx
40a938:	85 db                	test   %ebx,%ebx
40a93a:	5b                   	pop    %ebx
40a93b:	74 0d                	je     0x40a94a
40a93d:	8b c1                	mov    %ecx,%eax
40a93f:	41                   	inc    %ecx
40a940:	3b f8                	cmp    %eax,%edi
40a942:	75 06                	jne    0x40a94a
40a944:	8b 96 ec 00 00 00    	mov    0xec(%esi),%edx
40a94a:	3b f9                	cmp    %ecx,%edi
40a94c:	75 06                	jne    0x40a954
40a94e:	8b 96 f0 00 00 00    	mov    0xf0(%esi),%edx
40a954:	8d 41 01             	lea    0x1(%ecx),%eax
40a957:	83 c1 02             	add    $0x2,%ecx
40a95a:	3b f8                	cmp    %eax,%edi
40a95c:	75 06                	jne    0x40a964
40a95e:	8b 96 f4 00 00 00    	mov    0xf4(%esi),%edx
40a964:	3b f9                	cmp    %ecx,%edi
40a966:	75 06                	jne    0x40a96e
40a968:	8b 96 f8 00 00 00    	mov    0xf8(%esi),%edx
40a96e:	5f                   	pop    %edi
40a96f:	8b c2                	mov    %edx,%eax
40a971:	5e                   	pop    %esi
40a972:	5d                   	pop    %ebp
40a973:	c2 04 00             	ret    $0x4
40a976:	6a 40                	push   $0x40
40a978:	b8 d1 cc 41 00       	mov    $0x41ccd1,%eax
40a97d:	e8 b6 1a 01 00       	call   0x41c438
40a982:	8b f9                	mov    %ecx,%edi
40a984:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a987:	ff 15 40 32 42 00    	call   *0x423240
40a98d:	33 db                	xor    %ebx,%ebx
40a98f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a992:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a995:	6a 3c                	push   $0x3c
40a997:	53                   	push   %ebx
40a998:	50                   	push   %eax
40a999:	e8 83 1c 01 00       	call   0x41c621
40a99e:	83 c4 0c             	add    $0xc,%esp
40a9a1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a9a4:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40a9a7:	75 07                	jne    0x40a9b0
40a9a9:	68 0c 01 00 00       	push   $0x10c
40a9ae:	eb 05                	jmp    0x40a9b5
40a9b0:	68 0b 01 00 00       	push   $0x10b
40a9b5:	ff 15 74 33 42 00    	call   *0x423374
40a9bb:	8b 45 08             	mov    0x8(%ebp),%eax
40a9be:	53                   	push   %ebx
40a9bf:	53                   	push   %ebx
40a9c0:	68 04 10 00 00       	push   $0x1004
40a9c5:	ff b7 84 01 00 00    	push   0x184(%edi)
40a9cb:	c7 45 b4 05 00 00 00 	movl   $0x5,-0x4c(%ebp)
40a9d2:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40a9d5:	ff 15 40 34 42 00    	call   *0x423440
40a9db:	89 45 b8             	mov    %eax,-0x48(%ebp)
40a9de:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a9e1:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a9e4:	8b 40 f8             	mov    -0x8(%eax),%eax
40a9e7:	40                   	inc    %eax
40a9e8:	50                   	push   %eax
40a9e9:	ff 15 78 33 42 00    	call   *0x423378
40a9ef:	8b 8f 84 01 00 00    	mov    0x184(%edi),%ecx
40a9f5:	85 c0                	test   %eax,%eax
40a9f7:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a9fa:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a9fd:	50                   	push   %eax
40a9fe:	53                   	push   %ebx
40a9ff:	68 4d 10 00 00       	push   $0x104d
40aa04:	51                   	push   %ecx
40aa05:	74 15                	je     0x40aa1c
40aa07:	ff 15 40 34 42 00    	call   *0x423440
40aa0d:	6a ff                	push   $0xffffffff
40aa0f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa12:	8b f0                	mov    %eax,%esi
40aa14:	ff 15 7c 33 42 00    	call   *0x42337c
40aa1a:	eb 0f                	jmp    0x40aa2b
40aa1c:	c7 45 c8 34 1f 42 00 	movl   $0x421f34,-0x38(%ebp)
40aa23:	ff 15 40 34 42 00    	call   *0x423440
40aa29:	8b f0                	mov    %eax,%esi
40aa2b:	85 f6                	test   %esi,%esi
40aa2d:	78 51                	js     0x40aa80
40aa2f:	ff 75 10             	push   0x10(%ebp)
40aa32:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa35:	ff 15 74 33 42 00    	call   *0x423374
40aa3b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa3e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa41:	8b 40 f8             	mov    -0x8(%eax),%eax
40aa44:	40                   	inc    %eax
40aa45:	50                   	push   %eax
40aa46:	ff 15 78 33 42 00    	call   *0x423378
40aa4c:	89 45 c8             	mov    %eax,-0x38(%ebp)
40aa4f:	85 c0                	test   %eax,%eax
40aa51:	74 2d                	je     0x40aa80
40aa53:	33 c0                	xor    %eax,%eax
40aa55:	89 75 b8             	mov    %esi,-0x48(%ebp)
40aa58:	40                   	inc    %eax
40aa59:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40aa5c:	89 45 bc             	mov    %eax,-0x44(%ebp)
40aa5f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40aa62:	50                   	push   %eax
40aa63:	53                   	push   %ebx
40aa64:	68 4c 10 00 00       	push   $0x104c
40aa69:	ff b7 84 01 00 00    	push   0x184(%edi)
40aa6f:	ff 15 40 34 42 00    	call   *0x423440
40aa75:	6a ff                	push   $0xffffffff
40aa77:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa7a:	ff 15 7c 33 42 00    	call   *0x42337c
40aa80:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aa84:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa87:	ff 15 44 32 42 00    	call   *0x423244
40aa8d:	e8 74 19 01 00       	call   0x41c406
40aa92:	c2 0c 00             	ret    $0xc
40aa95:	6a 40                	push   $0x40
40aa97:	b8 d1 cc 41 00       	mov    $0x41ccd1,%eax
40aa9c:	e8 97 19 01 00       	call   0x41c438
40aaa1:	8b f1                	mov    %ecx,%esi
40aaa3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aaa6:	ff 15 40 32 42 00    	call   *0x423240
40aaac:	33 ff                	xor    %edi,%edi
40aaae:	89 7d fc             	mov    %edi,-0x4(%ebp)
40aab1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aab4:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40aab7:	75 07                	jne    0x40aac0
40aab9:	68 0c 01 00 00       	push   $0x10c
40aabe:	eb 05                	jmp    0x40aac5
40aac0:	68 0b 01 00 00       	push   $0x10b
40aac5:	ff 15 74 33 42 00    	call   *0x423374
40aacb:	6a 3c                	push   $0x3c
40aacd:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40aad0:	57                   	push   %edi
40aad1:	50                   	push   %eax
40aad2:	e8 4a 1b 01 00       	call   0x41c621
40aad7:	8b 45 08             	mov    0x8(%ebp),%eax
40aada:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aadd:	89 45 b8             	mov    %eax,-0x48(%ebp)
40aae0:	83 c4 0c             	add    $0xc,%esp
40aae3:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aae6:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
40aaed:	89 7d bc             	mov    %edi,-0x44(%ebp)
40aaf0:	8b 40 f8             	mov    -0x8(%eax),%eax
40aaf3:	40                   	inc    %eax
40aaf4:	50                   	push   %eax
40aaf5:	ff 15 78 33 42 00    	call   *0x423378
40aafb:	8b 8e 84 01 00 00    	mov    0x184(%esi),%ecx
40ab01:	85 c0                	test   %eax,%eax
40ab03:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ab06:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40ab09:	50                   	push   %eax
40ab0a:	57                   	push   %edi
40ab0b:	68 4c 10 00 00       	push   $0x104c
40ab10:	51                   	push   %ecx
40ab11:	74 13                	je     0x40ab26