40e63a:	8b 46 30             	mov    0x30(%esi),%eax
40e63d:	03 45 f0             	add    -0x10(%ebp),%eax
40e640:	89 46 38             	mov    %eax,0x38(%esi)
40e643:	33 c0                	xor    %eax,%eax
40e645:	85 ff                	test   %edi,%edi
40e647:	0f 9d c0             	setge  %al
40e64a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40e64e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40e651:	8b f0                	mov    %eax,%esi
40e653:	e8 01 0e 04 00       	call   0x44f459
40e658:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e65b:	5f                   	pop    %edi
40e65c:	8b c6                	mov    %esi,%eax
40e65e:	5e                   	pop    %esi
40e65f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e666:	c9                   	leave
40e667:	c3                   	ret
40e668:	55                   	push   %ebp
40e669:	8b ec                	mov    %esp,%ebp
40e66b:	83 ec 20             	sub    $0x20,%esp
40e66e:	56                   	push   %esi
40e66f:	ff 75 18             	push   0x18(%ebp)
40e672:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e675:	50                   	push   %eax
40e676:	8b f1                	mov    %ecx,%esi
40e678:	ff 15 44 07 4b 00    	call   *0x4b0744
40e67e:	ff 75 28             	push   0x28(%ebp)
40e681:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e684:	ff 75 24             	push   0x24(%ebp)
40e687:	8b 45 e8             	mov    -0x18(%ebp),%eax
40e68a:	ff 75 20             	push   0x20(%ebp)
40e68d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40e690:	ff 75 1c             	push   0x1c(%ebp)
40e693:	2b c1                	sub    %ecx,%eax
40e695:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40e698:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e69b:	2b ca                	sub    %edx,%ecx
40e69d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e6a0:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40e6a3:	51                   	push   %ecx
40e6a4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40e6a7:	51                   	push   %ecx
40e6a8:	ff 75 14             	push   0x14(%ebp)
40e6ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e6ae:	ff 75 10             	push   0x10(%ebp)
40e6b1:	8b 06                	mov    (%esi),%eax
40e6b3:	ff 75 0c             	push   0xc(%ebp)
40e6b6:	8b ce                	mov    %esi,%ecx
40e6b8:	ff 75 08             	push   0x8(%ebp)
40e6bb:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e6be:	ff 50 50             	call   *0x50(%eax)
40e6c1:	5e                   	pop    %esi
40e6c2:	c9                   	leave
40e6c3:	c2 24 00             	ret    $0x24
40e6c6:	56                   	push   %esi
40e6c7:	8b 74 24 08          	mov    0x8(%esp),%esi
40e6cb:	85 f6                	test   %esi,%esi
40e6cd:	75 04                	jne    0x40e6d3
40e6cf:	33 c0                	xor    %eax,%eax
40e6d1:	eb 20                	jmp    0x40e6f3
40e6d3:	57                   	push   %edi
40e6d4:	8b 7c 24 10          	mov    0x10(%esp),%edi
40e6d8:	85 ff                	test   %edi,%edi
40e6da:	74 06                	je     0x40e6e2
40e6dc:	8b 07                	mov    (%edi),%eax
40e6de:	57                   	push   %edi
40e6df:	ff 50 04             	call   *0x4(%eax)
40e6e2:	8b 06                	mov    (%esi),%eax
40e6e4:	85 c0                	test   %eax,%eax
40e6e6:	74 06                	je     0x40e6ee
40e6e8:	8b 08                	mov    (%eax),%ecx
40e6ea:	50                   	push   %eax
40e6eb:	ff 51 08             	call   *0x8(%ecx)
40e6ee:	89 3e                	mov    %edi,(%esi)
40e6f0:	8b c7                	mov    %edi,%eax
40e6f2:	5f                   	pop    %edi
40e6f3:	5e                   	pop    %esi
40e6f4:	c2 08 00             	ret    $0x8
40e6f7:	55                   	push   %ebp
40e6f8:	8b ec                	mov    %esp,%ebp
40e6fa:	51                   	push   %ecx
40e6fb:	56                   	push   %esi
40e6fc:	57                   	push   %edi
40e6fd:	33 ff                	xor    %edi,%edi
40e6ff:	39 7d 1c             	cmp    %edi,0x1c(%ebp)
40e702:	75 38                	jne    0x40e73c
40e704:	8d 45 1c             	lea    0x1c(%ebp),%eax
40e707:	50                   	push   %eax
40e708:	68 fc 5c 49 00       	push   $0x495cfc
40e70d:	57                   	push   %edi
40e70e:	ff 75 10             	push   0x10(%ebp)
40e711:	89 7d 1c             	mov    %edi,0x1c(%ebp)
40e714:	ff 75 08             	push   0x8(%ebp)
40e717:	ff 15 38 0b 4b 00    	call   *0x4b0b38
40e71d:	8b f0                	mov    %eax,%esi
40e71f:	3b f7                	cmp    %edi,%esi
40e721:	7c 59                	jl     0x40e77c
40e723:	ff 75 18             	push   0x18(%ebp)
40e726:	8b 45 1c             	mov    0x1c(%ebp),%eax
40e729:	ff 75 14             	push   0x14(%ebp)
40e72c:	8b 08                	mov    (%eax),%ecx
40e72e:	ff 75 0c             	push   0xc(%ebp)
40e731:	50                   	push   %eax
40e732:	ff 51 0c             	call   *0xc(%ecx)
40e735:	8b f0                	mov    %eax,%esi
40e737:	8b 45 1c             	mov    0x1c(%ebp),%eax
40e73a:	eb 3a                	jmp    0x40e776
40e73c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e73f:	50                   	push   %eax
40e740:	68 dc 64 49 00       	push   $0x4964dc
40e745:	57                   	push   %edi
40e746:	ff 75 10             	push   0x10(%ebp)
40e749:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e74c:	ff 75 08             	push   0x8(%ebp)
40e74f:	ff 15 38 0b 4b 00    	call   *0x4b0b38
40e755:	8b f0                	mov    %eax,%esi
40e757:	3b f7                	cmp    %edi,%esi
40e759:	7c 21                	jl     0x40e77c
40e75b:	ff 75 18             	push   0x18(%ebp)
40e75e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e761:	ff 75 1c             	push   0x1c(%ebp)
40e764:	8b 08                	mov    (%eax),%ecx
40e766:	ff 75 14             	push   0x14(%ebp)
40e769:	57                   	push   %edi
40e76a:	ff 75 0c             	push   0xc(%ebp)
40e76d:	50                   	push   %eax
40e76e:	ff 51 1c             	call   *0x1c(%ecx)
40e771:	8b f0                	mov    %eax,%esi
40e773:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e776:	8b 08                	mov    (%eax),%ecx
40e778:	50                   	push   %eax
40e779:	ff 51 08             	call   *0x8(%ecx)
40e77c:	5f                   	pop    %edi
40e77d:	8b c6                	mov    %esi,%eax
40e77f:	5e                   	pop    %esi
40e780:	c9                   	leave
40e781:	c2 18 00             	ret    $0x18
40e784:	8b 41 4c             	mov    0x4c(%ecx),%eax
40e787:	8b 10                	mov    (%eax),%edx
40e789:	56                   	push   %esi
40e78a:	8d 71 2c             	lea    0x2c(%ecx),%esi
40e78d:	56                   	push   %esi
40e78e:	8b 71 1c             	mov    0x1c(%ecx),%esi
40e791:	8b 76 1c             	mov    0x1c(%esi),%esi
40e794:	ff 76 1c             	push   0x1c(%esi)
40e797:	81 c1 c4 00 00 00    	add    $0xc4,%ecx
40e79d:	6a 00                	push   $0x0
40e79f:	51                   	push   %ecx
40e7a0:	ff 74 24 1c          	push   0x1c(%esp)
40e7a4:	ff 74 24 1c          	push   0x1c(%esp)
40e7a8:	50                   	push   %eax
40e7a9:	ff 52 2c             	call   *0x2c(%edx)
40e7ac:	5e                   	pop    %esi
40e7ad:	c2 08 00             	ret    $0x8
40e7b0:	f6 41 6d 10          	testb  $0x10,0x6d(%ecx)
40e7b4:	74 08                	je     0x40e7be
40e7b6:	33 c0                	xor    %eax,%eax
40e7b8:	40                   	inc    %eax
40e7b9:	84 41 68             	test   %al,0x68(%ecx)
40e7bc:	75 02                	jne    0x40e7c0
40e7be:	33 c0                	xor    %eax,%eax
40e7c0:	c3                   	ret
40e7c1:	f6 41 6d 10          	testb  $0x10,0x6d(%ecx)
40e7c5:	74 10                	je     0x40e7d7
40e7c7:	8b 41 68             	mov    0x68(%ecx),%eax
40e7ca:	24 01                	and    $0x1,%al
40e7cc:	f6 d8                	neg    %al
40e7ce:	1b c0                	sbb    %eax,%eax
40e7d0:	83 e0 f0             	and    $0xfffffff0,%eax
40e7d3:	83 c0 20             	add    $0x20,%eax
40e7d6:	c3                   	ret
40e7d7:	33 c0                	xor    %eax,%eax
40e7d9:	c3                   	ret
40e7da:	55                   	push   %ebp
40e7db:	8b ec                	mov    %esp,%ebp
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