40e7dd:	f6 41 6d 10          	testb  $0x10,0x6d(%ecx)
40e7e1:	74 4c                	je     0x40e82f
40e7e3:	8b 41 68             	mov    0x68(%ecx),%eax
40e7e6:	33 d2                	xor    %edx,%edx
40e7e8:	39 55 08             	cmp    %edx,0x8(%ebp)
40e7eb:	56                   	push   %esi
40e7ec:	0f 95 c2             	setne  %dl
40e7ef:	8b f0                	mov    %eax,%esi
40e7f1:	83 e6 01             	and    $0x1,%esi
40e7f4:	3b f2                	cmp    %edx,%esi
40e7f6:	5e                   	pop    %esi
40e7f7:	74 36                	je     0x40e82f
40e7f9:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40e7fd:	83 f0 01             	xor    $0x1,%eax
40e800:	8d 55 08             	lea    0x8(%ebp),%edx
40e803:	52                   	push   %edx
40e804:	89 41 68             	mov    %eax,0x68(%ecx)
40e807:	8b 49 4c             	mov    0x4c(%ecx),%ecx
40e80a:	8b 01                	mov    (%ecx),%eax
40e80c:	68 9c 64 49 00       	push   $0x49649c
40e811:	51                   	push   %ecx
40e812:	ff 10                	call   *(%eax)
40e814:	85 c0                	test   %eax,%eax
40e816:	7c 17                	jl     0x40e82f
40e818:	8b 45 08             	mov    0x8(%ebp),%eax
40e81b:	8b 08                	mov    (%eax),%ecx
40e81d:	68 37 fd ff ff       	push   $0xfffffd37
40e822:	50                   	push   %eax
40e823:	ff 51 14             	call   *0x14(%ecx)
40e826:	8b 45 08             	mov    0x8(%ebp),%eax
40e829:	8b 08                	mov    (%eax),%ecx
40e82b:	50                   	push   %eax
40e82c:	ff 51 08             	call   *0x8(%ecx)
40e82f:	5d                   	pop    %ebp
40e830:	c2 04 00             	ret    $0x4
40e833:	55                   	push   %ebp
40e834:	8b ec                	mov    %esp,%ebp
40e836:	83 ec 0c             	sub    $0xc,%esp
40e839:	83 79 4c 00          	cmpl   $0x0,0x4c(%ecx)
40e83d:	74 58                	je     0x40e897
40e83f:	8b 41 4c             	mov    0x4c(%ecx),%eax
40e842:	8b 08                	mov    (%eax),%ecx
40e844:	8d 55 f8             	lea    -0x8(%ebp),%edx
40e847:	52                   	push   %edx
40e848:	68 ec 64 49 00       	push   $0x4964ec
40e84d:	50                   	push   %eax
40e84e:	ff 11                	call   *(%ecx)
40e850:	85 c0                	test   %eax,%eax
40e852:	7c 43                	jl     0x40e897
40e854:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e857:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e85b:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40e85f:	8b 08                	mov    (%eax),%ecx
40e861:	8d 55 fc             	lea    -0x4(%ebp),%edx
40e864:	52                   	push   %edx
40e865:	ff 75 08             	push   0x8(%ebp)
40e868:	50                   	push   %eax
40e869:	ff 51 10             	call   *0x10(%ecx)
40e86c:	85 c0                	test   %eax,%eax
40e86e:	7c 19                	jl     0x40e889
40e870:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e873:	8b 08                	mov    (%eax),%ecx
40e875:	8d 55 f4             	lea    -0xc(%ebp),%edx
40e878:	52                   	push   %edx
40e879:	ff 75 0c             	push   0xc(%ebp)
40e87c:	50                   	push   %eax
40e87d:	ff 51 14             	call   *0x14(%ecx)
40e880:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e883:	8b 08                	mov    (%eax),%ecx
40e885:	50                   	push   %eax
40e886:	ff 51 08             	call   *0x8(%ecx)
40e889:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e88c:	8b 08                	mov    (%eax),%ecx
40e88e:	50                   	push   %eax
40e88f:	ff 51 08             	call   *0x8(%ecx)
40e892:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e895:	eb 02                	jmp    0x40e899
40e897:	33 c0                	xor    %eax,%eax
40e899:	c9                   	leave
40e89a:	c2 08 00             	ret    $0x8
40e89d:	55                   	push   %ebp
40e89e:	8b ec                	mov    %esp,%ebp
40e8a0:	51                   	push   %ecx
40e8a1:	51                   	push   %ecx
40e8a2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40e8a6:	74 51                	je     0x40e8f9
40e8a8:	83 79 4c 00          	cmpl   $0x0,0x4c(%ecx)
40e8ac:	74 4b                	je     0x40e8f9
40e8ae:	8b 49 4c             	mov    0x4c(%ecx),%ecx
40e8b1:	8b 01                	mov    (%ecx),%eax
40e8b3:	8d 55 f8             	lea    -0x8(%ebp),%edx
40e8b6:	52                   	push   %edx
40e8b7:	68 ec 64 49 00       	push   $0x4964ec
40e8bc:	51                   	push   %ecx
40e8bd:	ff 10                	call   *(%eax)
40e8bf:	85 c0                	test   %eax,%eax
40e8c1:	7c 36                	jl     0x40e8f9
40e8c3:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8c6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e8ca:	8b 08                	mov    (%eax),%ecx
40e8cc:	8d 55 fc             	lea    -0x4(%ebp),%edx
40e8cf:	52                   	push   %edx
40e8d0:	ff 75 08             	push   0x8(%ebp)
40e8d3:	50                   	push   %eax
40e8d4:	ff 51 10             	call   *0x10(%ecx)
40e8d7:	85 c0                	test   %eax,%eax
40e8d9:	7c 15                	jl     0x40e8f0
40e8db:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e8de:	ff 75 0c             	push   0xc(%ebp)
40e8e1:	8b 08                	mov    (%eax),%ecx
40e8e3:	50                   	push   %eax
40e8e4:	ff 51 18             	call   *0x18(%ecx)
40e8e7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e8ea:	8b 08                	mov    (%eax),%ecx
40e8ec:	50                   	push   %eax
40e8ed:	ff 51 08             	call   *0x8(%ecx)
40e8f0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e8f3:	8b 08                	mov    (%eax),%ecx
40e8f5:	50                   	push   %eax
40e8f6:	ff 51 08             	call   *0x8(%ecx)
40e8f9:	c9                   	leave
40e8fa:	c2 08 00             	ret    $0x8
40e8fd:	55                   	push   %ebp
40e8fe:	8b ec                	mov    %esp,%ebp
40e900:	83 ec 20             	sub    $0x20,%esp
40e903:	53                   	push   %ebx
40e904:	56                   	push   %esi
40e905:	57                   	push   %edi
40e906:	8b 7d 08             	mov    0x8(%ebp),%edi
40e909:	be ac 4b 49 00       	mov    $0x494bac,%esi
40e90e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40e90f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40e910:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40e911:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40e912:	8d 55 f4             	lea    -0xc(%ebp),%edx
40e915:	8b d9                	mov    %ecx,%ebx
40e917:	8b 43 4c             	mov    0x4c(%ebx),%eax
40e91a:	52                   	push   %edx
40e91b:	33 ff                	xor    %edi,%edi
40e91d:	68 bc 64 49 00       	push   $0x4964bc
40e922:	89 7d f4             	mov    %edi,-0xc(%ebp)
40e925:	8b 08                	mov    (%eax),%ecx
40e927:	50                   	push   %eax
40e928:	ff 11                	call   *(%ecx)
40e92a:	85 c0                	test   %eax,%eax
40e92c:	7c 17                	jl     0x40e945
40e92e:	ff 75 08             	push   0x8(%ebp)
40e931:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e934:	8b 08                	mov    (%eax),%ecx
40e936:	6a 01                	push   $0x1
40e938:	50                   	push   %eax
40e939:	ff 51 10             	call   *0x10(%ecx)
40e93c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e93f:	8b 08                	mov    (%eax),%ecx
40e941:	50                   	push   %eax
40e942:	ff 51 08             	call   *0x8(%ecx)
40e945:	68 ac 4b 49 00       	push   $0x494bac
40e94a:	ff 75 08             	push   0x8(%ebp)
40e94d:	89 7d ec             	mov    %edi,-0x14(%ebp)
40e950:	e8 62 8c ff ff       	call   0x4075b7
40e955:	85 c0                	test   %eax,%eax
40e957:	59                   	pop    %ecx
40e958:	59                   	pop    %ecx
40e959:	0f 84 f6 00 00 00    	je     0x40ea55
40e95f:	8b 5b 4c             	mov    0x4c(%ebx),%ebx
40e962:	8b 03                	mov    (%ebx),%eax
40e964:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40e967:	51                   	push   %ecx
40e968:	68 cc 64 49 00       	push   $0x4964cc
40e96d:	53                   	push   %ebx
40e96e:	ff 10                	call   *(%eax)
40e970:	85 c0                	test   %eax,%eax
40e972:	0f 8c dd 00 00 00    	jl     0x40ea55
40e978:	8b 45 ec             	mov    -0x14(%ebp),%eax
40e97b:	8d 55 fc             	lea    -0x4(%ebp),%edx
40e97e:	52                   	push   %edx
40e97f:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e982:	8b 08                	mov    (%eax),%ecx
40e984:	50                   	push   %eax
40e985:	ff 51 0c             	call   *0xc(%ecx)
40e988:	85 c0                	test   %eax,%eax
40e98a:	0f 8c bc 00 00 00    	jl     0x40ea4c
40e990:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e993:	8b 08                	mov    (%eax),%ecx
40e995:	8d 55 f0             	lea    -0x10(%ebp),%edx
40e998:	52                   	push   %edx
40e999:	50                   	push   %eax
40e99a:	ff 51 0c             	call   *0xc(%ecx)
40e99d:	85 c0                	test   %eax,%eax
40e99f:	0f 8c 9e 00 00 00    	jl     0x40ea43
40e9a5:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e9a8:	33 f6                	xor    %esi,%esi
40e9aa:	66 39 78 30          	cmp    %di,0x30(%eax)
40e9ae:	0f 86 83 00 00 00    	jbe    0x40ea37
40e9b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e9b7:	8b 08                	mov    (%eax),%ecx
40e9b9:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40e9bc:	52                   	push   %edx
40e9bd:	56                   	push   %esi
40e9be:	50                   	push   %eax
40e9bf:	ff 51 24             	call   *0x24(%ecx)
40e9c2:	85 c0                	test   %eax,%eax
40e9c4:	7c 0a                	jl     0x40e9d0
40e9c6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e9c9:	83 e0 07             	and    $0x7,%eax
40e9cc:	3c 03                	cmp    $0x3,%al
40e9ce:	74 0e                	je     0x40e9de
40e9d0:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e9d3:	0f b7 40 30          	movzwl 0x30(%eax),%eax
40e9d7:	46                   	inc    %esi
40e9d8:	3b f0                	cmp    %eax,%esi
40e9da:	72 d8                	jb     0x40e9b4
40e9dc:	eb 59                	jmp    0x40ea37
40e9de:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e9e1:	8d 55 e0             	lea    -0x20(%ebp),%edx
40e9e4:	52                   	push   %edx
40e9e5:	56                   	push   %esi
40e9e6:	89 7d f8             	mov    %edi,-0x8(%ebp)
40e9e9:	8b 08                	mov    (%eax),%ecx
40e9eb:	50                   	push   %eax
40e9ec:	ff 51 20             	call   *0x20(%ecx)
40e9ef:	85 c0                	test   %eax,%eax
40e9f1:	7c 44                	jl     0x40ea37
40e9f3:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e9f6:	8b 08                	mov    (%eax),%ecx
40e9f8:	8d 55 f8             	lea    -0x8(%ebp),%edx
40e9fb:	52                   	push   %edx
40e9fc:	ff 75 e0             	push   -0x20(%ebp)
40e9ff:	50                   	push   %eax
40ea00:	ff 51 38             	call   *0x38(%ecx)
40ea03:	85 c0                	test   %eax,%eax
40ea05:	7c 30                	jl     0x40ea37
40ea07:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ea0a:	8b 08                	mov    (%eax),%ecx
40ea0c:	8d 55 e8             	lea    -0x18(%ebp),%edx
40ea0f:	52                   	push   %edx
40ea10:	50                   	push   %eax
40ea11:	ff 51 0c             	call   *0xc(%ecx)
40ea14:	85 c0                	test   %eax,%eax
40ea16:	7c 16                	jl     0x40ea2e
40ea18:	8b 75 e8             	mov    -0x18(%ebp),%esi
40ea1b:	8b 7d 08             	mov    0x8(%ebp),%edi
40ea1e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ea21:	ff 75 e8             	push   -0x18(%ebp)
40ea24:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ea25:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ea26:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ea27:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ea28:	8b 08                	mov    (%eax),%ecx
40ea2a:	50                   	push   %eax
40ea2b:	ff 51 4c             	call   *0x4c(%ecx)
40ea2e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ea31:	8b 08                	mov    (%eax),%ecx
40ea33:	50                   	push   %eax
40ea34:	ff 51 08             	call   *0x8(%ecx)
40ea37:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ea3a:	ff 75 f0             	push   -0x10(%ebp)
40ea3d:	8b 08                	mov    (%eax),%ecx
40ea3f:	50                   	push   %eax
40ea40:	ff 51 4c             	call   *0x4c(%ecx)
40ea43:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ea46:	8b 08                	mov    (%eax),%ecx
40ea48:	50                   	push   %eax
40ea49:	ff 51 08             	call   *0x8(%ecx)
40ea4c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ea4f:	8b 08                	mov    (%eax),%ecx
40ea51:	50                   	push   %eax
40ea52:	ff 51 08             	call   *0x8(%ecx)
40ea55:	68 ac 4b 49 00       	push   $0x494bac
40ea5a:	ff 75 08             	push   0x8(%ebp)
40ea5d:	e8 55 8b ff ff       	call   0x4075b7
40ea62:	59                   	pop    %ecx
40ea63:	59                   	pop    %ecx
40ea64:	f7 d8                	neg    %eax
40ea66:	5f                   	pop    %edi
40ea67:	1b c0                	sbb    %eax,%eax
40ea69:	5e                   	pop    %esi
40ea6a:	40                   	inc    %eax
40ea6b:	5b                   	pop    %ebx
40ea6c:	c9                   	leave
40ea6d:	c2 04 00             	ret    $0x4
40ea70:	55                   	push   %ebp
40ea71:	8b ec                	mov    %esp,%ebp
40ea73:	51                   	push   %ecx
40ea74:	56                   	push   %esi
40ea75:	57                   	push   %edi
40ea76:	8b f9                	mov    %ecx,%edi
40ea78:	6a 10                	push   $0x10
40ea7a:	8d 77 74             	lea    0x74(%edi),%esi
40ea7d:	6a 00                	push   $0x0
40ea7f:	56                   	push   %esi
40ea80:	e8 bb 97 00 00       	call   0x418240
40ea85:	8b 7f 4c             	mov    0x4c(%edi),%edi
40ea88:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ea8c:	83 c4 0c             	add    $0xc,%esp
40ea8f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40ea92:	51                   	push   %ecx
40ea93:	68 9c 64 49 00       	push   $0x49649c
40ea98:	c7 06 10 00 00 00    	movl   $0x10,(%esi)
40ea9e:	8b 07                	mov    (%edi),%eax
40eaa0:	57                   	push   %edi
40eaa1:	ff 10                	call   *(%eax)
40eaa3:	85 c0                	test   %eax,%eax
40eaa5:	7c 13                	jl     0x40eaba
40eaa7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40eaaa:	8b 08                	mov    (%eax),%ecx
40eaac:	56                   	push   %esi
40eaad:	50                   	push   %eax
40eaae:	ff 51 0c             	call   *0xc(%ecx)
40eab1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40eab4:	8b 08                	mov    (%eax),%ecx
40eab6:	50                   	push   %eax
40eab7:	ff 51 08             	call   *0x8(%ecx)
40eaba:	5f                   	pop    %edi
40eabb:	5e                   	pop    %esi
40eabc:	c9                   	leave
40eabd:	c3                   	ret
40eabe:	55                   	push   %ebp
40eabf:	8b ec                	mov    %esp,%ebp
40eac1:	51                   	push   %ecx
40eac2:	51                   	push   %ecx
40eac3:	53                   	push   %ebx
40eac4:	56                   	push   %esi
40eac5:	8b f1                	mov    %ecx,%esi
40eac7:	66 8b 46 7c          	mov    0x7c(%esi),%ax
40eacb:	33 db                	xor    %ebx,%ebx
40eacd:	66 3b c3             	cmp    %bx,%ax
40ead0:	0f 84 83 00 00 00    	je     0x40eb59
40ead6:	39 5e 78             	cmp    %ebx,0x78(%esi)
40ead9:	74 7e                	je     0x40eb59
40eadb:	0f b7 c0             	movzwl %ax,%eax
40eade:	8d 04 40             	lea    (%eax,%eax,2),%eax
40eae1:	d1 e0                	shl    $1,%eax
40eae3:	57                   	push   %edi
40eae4:	50                   	push   %eax
40eae5:	e8 6b 15 03 00       	call   0x440055
40eaea:	8b f8                	mov    %eax,%edi
40eaec:	0f b7 46 7c          	movzwl 0x7c(%esi),%eax
40eaf0:	59                   	pop    %ecx
40eaf1:	50                   	push   %eax
40eaf2:	57                   	push   %edi
40eaf3:	ff 76 78             	push   0x78(%esi)
40eaf6:	ff 15 18 06 4b 00    	call   *0x4b0618
40eafc:	3b c3                	cmp    %ebx,%eax
40eafe:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40eb01:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40eb04:	7e 46                	jle    0x40eb4c
40eb06:	8b 55 08             	mov    0x8(%ebp),%edx
40eb09:	8b 72 04             	mov    0x4(%edx),%esi
40eb0c:	8b cf                	mov    %edi,%ecx