40e74d:	75 d8                	jne    0x40e727
40e74f:	b2 01                	mov    $0x1,%dl
40e751:	eb 08                	jmp    0x40e75b
40e753:	8a 57 16             	mov    0x16(%edi),%dl
40e756:	f6 d2                	not    %dl
40e758:	80 e2 01             	and    $0x1,%dl
40e75b:	5f                   	pop    %edi
40e75c:	5e                   	pop    %esi
40e75d:	8a c2                	mov    %dl,%al
40e75f:	5b                   	pop    %ebx
40e760:	c9                   	leave
40e761:	c3                   	ret
40e762:	55                   	push   %ebp
40e763:	8b ec                	mov    %esp,%ebp
40e765:	83 ec 2c             	sub    $0x2c,%esp
40e768:	53                   	push   %ebx
40e769:	56                   	push   %esi
40e76a:	57                   	push   %edi
40e76b:	8b f9                	mov    %ecx,%edi
40e76d:	51                   	push   %ecx
40e76e:	89 7d f0             	mov    %edi,-0x10(%ebp)
40e771:	e8 48 fe ff ff       	call   0x40e5be
40e776:	ba 54 43 41 00       	mov    $0x414354,%edx
40e77b:	8b c8                	mov    %eax,%ecx
40e77d:	e8 85 01 00 00       	call   0x40e907
40e782:	8b d8                	mov    %eax,%ebx
40e784:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40e787:	e8 32 fe ff ff       	call   0x40e5be
40e78c:	ba 60 43 41 00       	mov    $0x414360,%edx
40e791:	8b c8                	mov    %eax,%ecx
40e793:	e8 6f 01 00 00       	call   0x40e907
40e798:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e79b:	e8 1e fe ff ff       	call   0x40e5be
40e7a0:	ba 84 43 41 00       	mov    $0x414384,%edx
40e7a5:	8b c8                	mov    %eax,%ecx
40e7a7:	e8 5b 01 00 00       	call   0x40e907
40e7ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e7af:	e8 0a fe ff ff       	call   0x40e5be
40e7b4:	ba 9c 43 41 00       	mov    $0x41439c,%edx
40e7b9:	8b c8                	mov    %eax,%ecx
40e7bb:	e8 47 01 00 00       	call   0x40e907
40e7c0:	6a 00                	push   $0x0
40e7c2:	6a 01                	push   $0x1
40e7c4:	8b cf                	mov    %edi,%ecx
40e7c6:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e7c9:	e8 1e fe ff ff       	call   0x40e5ec
40e7ce:	8b f0                	mov    %eax,%esi
40e7d0:	83 c4 0c             	add    $0xc,%esp
40e7d3:	85 f6                	test   %esi,%esi
40e7d5:	0f 85 a9 00 00 00    	jne    0x40e884
40e7db:	b0 01                	mov    $0x1,%al
40e7dd:	5f                   	pop    %edi
40e7de:	5e                   	pop    %esi
40e7df:	5b                   	pop    %ebx
40e7e0:	c9                   	leave
40e7e1:	c3                   	ret
40e7e2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e7e6:	03 c7                	add    %edi,%eax
40e7e8:	50                   	push   %eax
40e7e9:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e7ec:	50                   	push   %eax
40e7ed:	ff 55 ec             	call   *-0x14(%ebp)
40e7f0:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e7f3:	50                   	push   %eax
40e7f4:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e7f7:	50                   	push   %eax
40e7f8:	6a 00                	push   $0x0
40e7fa:	6a 00                	push   $0x0
40e7fc:	ff d3                	call   *%ebx
40e7fe:	85 c0                	test   %eax,%eax
40e800:	0f 88 8e 00 00 00    	js     0x40e894
40e806:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e809:	85 c9                	test   %ecx,%ecx
40e80b:	0f 84 83 00 00 00    	je     0x40e894
40e811:	8b 06                	mov    (%esi),%eax
40e813:	85 c0                	test   %eax,%eax
40e815:	74 05                	je     0x40e81c
40e817:	8b 56 10             	mov    0x10(%esi),%edx
40e81a:	eb 05                	jmp    0x40e821
40e81c:	8b 46 10             	mov    0x10(%esi),%eax
40e81f:	8b d0                	mov    %eax,%edx
40e821:	8d 1c 3a             	lea    (%edx,%edi,1),%ebx
40e824:	03 f8                	add    %eax,%edi
40e826:	8b 07                	mov    (%edi),%eax
40e828:	85 c0                	test   %eax,%eax
40e82a:	74 4f                	je     0x40e87b
40e82c:	85 c0                	test   %eax,%eax
40e82e:	79 0d                	jns    0x40e83d
40e830:	8d 55 f4             	lea    -0xc(%ebp),%edx
40e833:	0f b7 c0             	movzwl %ax,%eax
40e836:	52                   	push   %edx
40e837:	50                   	push   %eax
40e838:	6a 00                	push   $0x0
40e83a:	51                   	push   %ecx
40e83b:	eb 1d                	jmp    0x40e85a
40e83d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e840:	83 c1 02             	add    $0x2,%ecx
40e843:	03 c1                	add    %ecx,%eax
40e845:	50                   	push   %eax
40e846:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e849:	50                   	push   %eax
40e84a:	ff 55 e8             	call   *-0x18(%ebp)
40e84d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e850:	50                   	push   %eax
40e851:	6a 00                	push   $0x0
40e853:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e856:	50                   	push   %eax
40e857:	ff 75 fc             	push   -0x4(%ebp)
40e85a:	ff 55 f8             	call   *-0x8(%ebp)
40e85d:	85 c0                	test   %eax,%eax
40e85f:	78 33                	js     0x40e894
40e861:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e864:	85 c0                	test   %eax,%eax
40e866:	74 2c                	je     0x40e894
40e868:	83 c7 04             	add    $0x4,%edi
40e86b:	89 03                	mov    %eax,(%ebx)
40e86d:	83 c3 04             	add    $0x4,%ebx
40e870:	8b 07                	mov    (%edi),%eax
40e872:	85 c0                	test   %eax,%eax
40e874:	74 05                	je     0x40e87b
40e876:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e879:	eb b1                	jmp    0x40e82c
40e87b:	8b 7d f0             	mov    -0x10(%ebp),%edi
40e87e:	83 c6 14             	add    $0x14,%esi
40e881:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40e884:	8b 46 0c             	mov    0xc(%esi),%eax
40e887:	85 c0                	test   %eax,%eax
40e889:	0f 85 53 ff ff ff    	jne    0x40e7e2
40e88f:	e9 47 ff ff ff       	jmp    0x40e7db
40e894:	32 c0                	xor    %al,%al
40e896:	e9 42 ff ff ff       	jmp    0x40e7dd
40e89b:	55                   	push   %ebp
40e89c:	8b ec                	mov    %esp,%ebp
40e89e:	51                   	push   %ecx
40e89f:	51                   	push   %ecx
40e8a0:	56                   	push   %esi
40e8a1:	0f 57 c0             	xorps  %xmm0,%xmm0
40e8a4:	57                   	push   %edi
40e8a5:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
40e8aa:	e8 b3 fd ff ff       	call   0x40e662
40e8af:	8b c8                	mov    %eax,%ecx
40e8b1:	85 c9                	test   %ecx,%ecx
40e8b3:	74 2d                	je     0x40e8e2
40e8b5:	0f b7 71 04          	movzwl 0x4(%ecx),%esi
40e8b9:	b8 64 86 00 00       	mov    $0x8664,%eax
40e8be:	66 3b f0             	cmp    %ax,%si
40e8c1:	75 08                	jne    0x40e8cb
40e8c3:	8b 41 30             	mov    0x30(%ecx),%eax
40e8c6:	8b 51 34             	mov    0x34(%ecx),%edx
40e8c9:	eb 06                	jmp    0x40e8d1
40e8cb:	8b 55 fc             	mov    -0x4(%ebp),%edx
40e8ce:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8d1:	bf 4c 01 00 00       	mov    $0x14c,%edi
40e8d6:	66 3b f7             	cmp    %di,%si
40e8d9:	75 0d                	jne    0x40e8e8
40e8db:	8b 41 34             	mov    0x34(%ecx),%eax
40e8de:	33 d2                	xor    %edx,%edx
40e8e0:	eb 06                	jmp    0x40e8e8
40e8e2:	8b 55 fc             	mov    -0x4(%ebp),%edx
40e8e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8e8:	5f                   	pop    %edi
40e8e9:	5e                   	pop    %esi
40e8ea:	c9                   	leave
40e8eb:	c3                   	ret
40e8ec:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40e8f2:	85 c0                	test   %eax,%eax
40e8f4:	74 0e                	je     0x40e904
40e8f6:	8b 40 0c             	mov    0xc(%eax),%eax
40e8f9:	8b 40 0c             	mov    0xc(%eax),%eax
40e8fc:	8b 00                	mov    (%eax),%eax
40e8fe:	8b 00                	mov    (%eax),%eax
40e900:	8b 40 18             	mov    0x18(%eax),%eax
40e903:	c3                   	ret
40e904:	33 c0                	xor    %eax,%eax
40e906:	c3                   	ret
40e907:	55                   	push   %ebp
40e908:	8b ec                	mov    %esp,%ebp
40e90a:	51                   	push   %ecx
40e90b:	51                   	push   %ecx
40e90c:	53                   	push   %ebx
40e90d:	56                   	push   %esi
40e90e:	57                   	push   %edi
40e90f:	51                   	push   %ecx
40e910:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e913:	89 55 fc             	mov    %edx,-0x4(%ebp)
40e916:	50                   	push   %eax
40e917:	33 f6                	xor    %esi,%esi
40e919:	8b d9                	mov    %ecx,%ebx
40e91b:	56                   	push   %esi
40e91c:	e8 cb fc ff ff       	call   0x40e5ec
40e921:	8b f8                	mov    %eax,%edi
40e923:	83 c4 0c             	add    $0xc,%esp
40e926:	85 ff                	test   %edi,%edi
40e928:	74 29                	je     0x40e953
40e92a:	8b 47 20             	mov    0x20(%edi),%eax
40e92d:	03 c3                	add    %ebx,%eax
40e92f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e932:	39 77 18             	cmp    %esi,0x18(%edi)
40e935:	76 1c                	jbe    0x40e953
40e937:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40e93a:	ff 75 fc             	push   -0x4(%ebp)
40e93d:	03 c3                	add    %ebx,%eax
40e93f:	50                   	push   %eax
40e940:	ff 15 f0 21 41 00    	call   *0x4121f0
40e946:	85 c0                	test   %eax,%eax
40e948:	74 10                	je     0x40e95a
40e94a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e94d:	46                   	inc    %esi
40e94e:	3b 77 18             	cmp    0x18(%edi),%esi
40e951:	72 e4                	jb     0x40e937
40e953:	33 c0                	xor    %eax,%eax
40e955:	5f                   	pop    %edi
40e956:	5e                   	pop    %esi
40e957:	5b                   	pop    %ebx
40e958:	c9                   	leave
40e959:	c3                   	ret
40e95a:	8b 47 24             	mov    0x24(%edi),%eax
40e95d:	8b 4f 1c             	mov    0x1c(%edi),%ecx
40e960:	03 cb                	add    %ebx,%ecx
40e962:	8d 04 70             	lea    (%eax,%esi,2),%eax
40e965:	0f b7 04 18          	movzwl (%eax,%ebx,1),%eax
40e969:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40e96c:	03 c3                	add    %ebx,%eax
40e96e:	eb e5                	jmp    0x40e955
40e970:	55                   	push   %ebp
40e971:	8b ec                	mov    %esp,%ebp
40e973:	83 ec 14             	sub    $0x14,%esp
40e976:	53                   	push   %ebx
40e977:	56                   	push   %esi
40e978:	8b f1                	mov    %ecx,%esi
40e97a:	89 55 f0             	mov    %edx,-0x10(%ebp)
40e97d:	57                   	push   %edi
40e97e:	89 75 f4             	mov    %esi,-0xc(%ebp)
40e981:	e8 dc fc ff ff       	call   0x40e662
40e986:	8b d8                	mov    %eax,%ebx
40e988:	85 db                	test   %ebx,%ebx
40e98a:	0f 84 ca 00 00 00    	je     0x40ea5a
40e990:	6a 40                	push   $0x40
40e992:	68 00 30 00 00       	push   $0x3000
40e997:	ff 73 50             	push   0x50(%ebx)
40e99a:	6a 00                	push   $0x0
40e99c:	ff 15 d8 21 41 00    	call   *0x4121d8
40e9a2:	8b f8                	mov    %eax,%edi
40e9a4:	85 ff                	test   %edi,%edi
40e9a6:	0f 84 ae 00 00 00    	je     0x40ea5a
40e9ac:	0f b7 43 14          	movzwl 0x14(%ebx),%eax
40e9b0:	83 c0 18             	add    $0x18,%eax
40e9b3:	03 c3                	add    %ebx,%eax
40e9b5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e9b8:	ff 70 14             	push   0x14(%eax)
40e9bb:	56                   	push   %esi
40e9bc:	57                   	push   %edi
40e9bd:	e8 6a 26 ff ff       	call   0x40102c
40e9c2:	33 c9                	xor    %ecx,%ecx
40e9c4:	83 c4 0c             	add    $0xc,%esp
40e9c7:	33 c0                	xor    %eax,%eax
40e9c9:	66 3b 4b 06          	cmp    0x6(%ebx),%cx
40e9cd:	eb 44                	jmp    0x40ea13
40e9cf:	0f b7 c0             	movzwl %ax,%eax
40e9d2:	6b f0 28             	imul   $0x28,%eax,%esi
40e9d5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e9d8:	ff 74 06 08          	push   0x8(%esi,%eax,1)
40e9dc:	8b 44 06 0c          	mov    0xc(%esi,%eax,1),%eax
40e9e0:	03 c7                	add    %edi,%eax
40e9e2:	6a 00                	push   $0x0
40e9e4:	50                   	push   %eax
40e9e5:	e8 68 26 ff ff       	call   0x401052
40e9ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e9ed:	83 c4 0c             	add    $0xc,%esp
40e9f0:	ff 74 0e 10          	push   0x10(%esi,%ecx,1)
40e9f4:	8b 44 0e 14          	mov    0x14(%esi,%ecx,1),%eax
40e9f8:	03 45 f4             	add    -0xc(%ebp),%eax
40e9fb:	50                   	push   %eax
40e9fc:	8b 44 0e 0c          	mov    0xc(%esi,%ecx,1),%eax
40ea00:	03 c7                	add    %edi,%eax
40ea02:	50                   	push   %eax
40ea03:	e8 24 26 ff ff       	call   0x40102c
40ea08:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ea0b:	83 c4 0c             	add    $0xc,%esp
40ea0e:	40                   	inc    %eax
40ea0f:	66 3b 43 06          	cmp    0x6(%ebx),%ax
40ea13:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ea16:	72 b7                	jb     0x40e9cf
40ea18:	8b cf                	mov    %edi,%ecx
40ea1a:	e8 7c fe ff ff       	call   0x40e89b
40ea1f:	8b c8                	mov    %eax,%ecx
40ea21:	8b f2                	mov    %edx,%esi
40ea23:	8b c7                	mov    %edi,%eax
40ea25:	99                   	cltd
40ea26:	2b c1                	sub    %ecx,%eax
40ea28:	8b cf                	mov    %edi,%ecx
40ea2a:	1b d6                	sbb    %esi,%edx
40ea2c:	52                   	push   %edx
40ea2d:	50                   	push   %eax
40ea2e:	e8 c1 fc ff ff       	call   0x40e6f4
40ea33:	59                   	pop    %ecx
40ea34:	59                   	pop    %ecx
40ea35:	84 c0                	test   %al,%al
40ea37:	74 1d                	je     0x40ea56
40ea39:	8b cf                	mov    %edi,%ecx
40ea3b:	e8 22 fd ff ff       	call   0x40e762
40ea40:	84 c0                	test   %al,%al
40ea42:	74 12                	je     0x40ea56
40ea44:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40ea48:	74 0c                	je     0x40ea56
40ea4a:	8b 43 28             	mov    0x28(%ebx),%eax
40ea4d:	6a 00                	push   $0x0
40ea4f:	6a 01                	push   $0x1
40ea51:	57                   	push   %edi
40ea52:	03 c7                	add    %edi,%eax
40ea54:	ff d0                	call   *%eax
40ea56:	8b c7                	mov    %edi,%eax
40ea58:	eb 02                	jmp    0x40ea5c
40ea5a:	33 c0                	xor    %eax,%eax
40ea5c:	5f                   	pop    %edi
40ea5d:	5e                   	pop    %esi
40ea5e:	5b                   	pop    %ebx
40ea5f:	c9                   	leave
40ea60:	c3                   	ret
40ea61:	55                   	push   %ebp
40ea62:	8b ec                	mov    %esp,%ebp
40ea64:	8b 55 0c             	mov    0xc(%ebp),%edx
40ea67:	56                   	push   %esi
40ea68:	57                   	push   %edi
40ea69:	8b f9                	mov    %ecx,%edi
40ea6b:	6a 28                	push   $0x28
40ea6d:	83 67 28 00          	andl   $0x0,0x28(%edi)
40ea71:	83 67 2c 00          	andl   $0x0,0x2c(%edi)
40ea75:	e8 1e 70 ff ff       	call   0x405a98
40ea7a:	8b 45 08             	mov    0x8(%ebp),%eax
40ea7d:	8d 4f 28             	lea    0x28(%edi),%ecx
40ea80:	03 47 0c             	add    0xc(%edi),%eax
40ea83:	83 c4 04             	add    $0x4,%esp
40ea86:	ff 77 10             	push   0x10(%edi)
40ea89:	50                   	push   %eax
40ea8a:	e8 32 43 ff ff       	call   0x402dc1
40ea8f:	8b c7                	mov    %edi,%eax
40ea91:	5f                   	pop    %edi
40ea92:	5e                   	pop    %esi
40ea93:	5d                   	pop    %ebp
40ea94:	c2 0c 00             	ret    $0xc
40ea97:	55                   	push   %ebp
40ea98:	8b ec                	mov    %esp,%ebp
40ea9a:	8b 45 08             	mov    0x8(%ebp),%eax
40ea9d:	53                   	push   %ebx
40ea9e:	56                   	push   %esi
40ea9f:	8b d9                	mov    %ecx,%ebx
40eaa1:	8b f0                	mov    %eax,%esi
40eaa3:	57                   	push   %edi
40eaa4:	6a 0a                	push   $0xa