40e5e2:	eb 1c                	jmp    0x40e600
40e5e4:	6a 09                	push   $0x9
40e5e6:	e8 d5 0e 00 00       	call   0x40f4c0
40e5eb:	a1 8c 89 43 00       	mov    0x43898c,%eax
40e5f0:	83 c4 04             	add    $0x4,%esp
40e5f3:	57                   	push   %edi
40e5f4:	56                   	push   %esi
40e5f5:	6a 00                	push   $0x0
40e5f7:	50                   	push   %eax
40e5f8:	ff 15 e0 95 43 00    	call   *0x4395e0
40e5fe:	8b d8                	mov    %eax,%ebx
40e600:	85 db                	test   %ebx,%ebx
40e602:	75 22                	jne    0x40e626
40e604:	a1 54 73 43 00       	mov    0x437354,%eax
40e609:	85 c0                	test   %eax,%eax
40e60b:	74 19                	je     0x40e626
40e60d:	57                   	push   %edi
40e60e:	e8 3d 10 00 00       	call   0x40f650
40e613:	83 c4 04             	add    $0x4,%esp
40e616:	85 c0                	test   %eax,%eax
40e618:	0f 85 c2 fe ff ff    	jne    0x40e4e0
40e61e:	5f                   	pop    %edi
40e61f:	5e                   	pop    %esi
40e620:	5d                   	pop    %ebp
40e621:	5b                   	pop    %ebx
40e622:	83 c4 08             	add    $0x8,%esp
40e625:	c3                   	ret
40e626:	5f                   	pop    %edi
40e627:	5e                   	pop    %esi
40e628:	8b c3                	mov    %ebx,%eax
40e62a:	5d                   	pop    %ebp
40e62b:	5b                   	pop    %ebx
40e62c:	83 c4 08             	add    $0x8,%esp
40e62f:	c3                   	ret
40e630:	51                   	push   %ecx
40e631:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40e635:	56                   	push   %esi
40e636:	8d 41 01             	lea    0x1(%ecx),%eax
40e639:	3d 00 01 00 00       	cmp    $0x100,%eax
40e63e:	77 15                	ja     0x40e655
40e640:	8b 15 48 1b 43 00    	mov    0x431b48,%edx
40e646:	33 c0                	xor    %eax,%eax
40e648:	66 8b 04 4a          	mov    (%edx,%ecx,2),%ax
40e64c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e650:	23 c1                	and    %ecx,%eax
40e652:	5e                   	pop    %esi
40e653:	59                   	pop    %ecx
40e654:	c3                   	ret
40e655:	8b 35 48 1b 43 00    	mov    0x431b48,%esi
40e65b:	8b c1                	mov    %ecx,%eax
40e65d:	c1 f8 08             	sar    $0x8,%eax
40e660:	8b d0                	mov    %eax,%edx
40e662:	81 e2 ff 00 00 00    	and    $0xff,%edx
40e668:	f6 44 56 01 80       	testb  $0x80,0x1(%esi,%edx,2)
40e66d:	74 14                	je     0x40e683
40e66f:	88 44 24 0c          	mov    %al,0xc(%esp)
40e673:	88 4c 24 0d          	mov    %cl,0xd(%esp)
40e677:	c6 44 24 0e 00       	movb   $0x0,0xe(%esp)
40e67c:	b8 02 00 00 00       	mov    $0x2,%eax
40e681:	eb 0e                	jmp    0x40e691
40e683:	88 4c 24 0c          	mov    %cl,0xc(%esp)
40e687:	c6 44 24 0d 00       	movb   $0x0,0xd(%esp)
40e68c:	b8 01 00 00 00       	mov    $0x1,%eax
40e691:	6a 00                	push   $0x0
40e693:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40e697:	6a 00                	push   $0x0
40e699:	51                   	push   %ecx
40e69a:	8d 54 24 18          	lea    0x18(%esp),%edx
40e69e:	50                   	push   %eax
40e69f:	52                   	push   %edx
40e6a0:	6a 01                	push   $0x1
40e6a2:	e8 49 22 00 00       	call   0x4108f0
40e6a7:	83 c4 18             	add    $0x18,%esp
40e6aa:	85 c0                	test   %eax,%eax
40e6ac:	75 03                	jne    0x40e6b1
40e6ae:	5e                   	pop    %esi
40e6af:	59                   	pop    %ecx
40e6b0:	c3                   	ret
40e6b1:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6b5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6b9:	25 ff ff 00 00       	and    $0xffff,%eax
40e6be:	5e                   	pop    %esi
40e6bf:	23 c1                	and    %ecx,%eax
40e6c1:	59                   	pop    %ecx
40e6c2:	c3                   	ret
40e6c3:	90                   	nop
40e6c4:	90                   	nop
40e6c5:	90                   	nop
40e6c6:	90                   	nop
40e6c7:	90                   	nop
40e6c8:	90                   	nop
40e6c9:	90                   	nop
40e6ca:	90                   	nop
40e6cb:	90                   	nop
40e6cc:	90                   	nop
40e6cd:	90                   	nop
40e6ce:	90                   	nop
40e6cf:	90                   	nop
40e6d0:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6d4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6d8:	0b c8                	or     %eax,%ecx
40e6da:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e6de:	75 09                	jne    0x40e6e9
40e6e0:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6e4:	f7 e1                	mul    %ecx
40e6e6:	c2 10 00             	ret    $0x10
40e6e9:	53                   	push   %ebx
40e6ea:	f7 e1                	mul    %ecx
40e6ec:	8b d8                	mov    %eax,%ebx
40e6ee:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6f2:	f7 64 24 14          	mull   0x14(%esp)
40e6f6:	03 d8                	add    %eax,%ebx
40e6f8:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6fc:	f7 e1                	mul    %ecx
40e6fe:	03 d3                	add    %ebx,%edx
40e700:	5b                   	pop    %ebx
40e701:	c2 10 00             	ret    $0x10
40e704:	cc                   	int3
40e705:	cc                   	int3
40e706:	cc                   	int3
40e707:	cc                   	int3
40e708:	cc                   	int3
40e709:	cc                   	int3
40e70a:	cc                   	int3
40e70b:	cc                   	int3
40e70c:	cc                   	int3
40e70d:	cc                   	int3
40e70e:	cc                   	int3
40e70f:	cc                   	int3
40e710:	51                   	push   %ecx
40e711:	53                   	push   %ebx
40e712:	55                   	push   %ebp
40e713:	56                   	push   %esi
40e714:	57                   	push   %edi
40e715:	e8 26 fb ff ff       	call   0x40e240
40e71a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e71e:	8b f0                	mov    %eax,%esi
40e720:	8b 46 50             	mov    0x50(%esi),%eax
40e723:	50                   	push   %eax
40e724:	51                   	push   %ecx
40e725:	e8 f6 01 00 00       	call   0x40e920
40e72a:	33 ff                	xor    %edi,%edi
40e72c:	83 c4 08             	add    $0x8,%esp
40e72f:	3b c7                	cmp    %edi,%eax
40e731:	0f 84 d5 01 00 00    	je     0x40e90c
40e737:	8b 50 08             	mov    0x8(%eax),%edx
40e73a:	3b d7                	cmp    %edi,%edx
40e73c:	89 54 24 18          	mov    %edx,0x18(%esp)
40e740:	0f 84 c6 01 00 00    	je     0x40e90c
40e746:	83 fa 05             	cmp    $0x5,%edx
40e749:	75 0e                	jne    0x40e759
40e74b:	89 78 08             	mov    %edi,0x8(%eax)
40e74e:	b8 01 00 00 00       	mov    $0x1,%eax
40e753:	5f                   	pop    %edi
40e754:	5e                   	pop    %esi
40e755:	5d                   	pop    %ebp
40e756:	5b                   	pop    %ebx
40e757:	59                   	pop    %ecx
40e758:	c3                   	ret
40e759:	83 fa 01             	cmp    $0x1,%edx
40e75c:	75 09                	jne    0x40e767
40e75e:	83 c8 ff             	or     $0xffffffff,%eax
40e761:	5f                   	pop    %edi
40e762:	5e                   	pop    %esi
40e763:	5d                   	pop    %ebp
40e764:	5b                   	pop    %ebx
40e765:	59                   	pop    %ecx
40e766:	c3                   	ret
40e767:	8b 4e 54             	mov    0x54(%esi),%ecx
40e76a:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40e76e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40e772:	89 4e 54             	mov    %ecx,0x54(%esi)
40e775:	8b 48 04             	mov    0x4(%eax),%ecx
40e778:	83 f9 08             	cmp    $0x8,%ecx
40e77b:	0f 85 72 01 00 00    	jne    0x40e8f3
40e781:	8b 0d d8 1d 43 00    	mov    0x431dd8,%ecx
40e787:	8b 1d dc 1d 43 00    	mov    0x431ddc,%ebx
40e78d:	03 d9                	add    %ecx,%ebx
40e78f:	3b cb                	cmp    %ebx,%ecx
40e791:	7d 27                	jge    0x40e7ba
40e793:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
40e796:	c1 e2 02             	shl    $0x2,%edx
40e799:	8b 5e 50             	mov    0x50(%esi),%ebx
40e79c:	41                   	inc    %ecx
40e79d:	89 7c 13 08          	mov    %edi,0x8(%ebx,%edx,1)
40e7a1:	8b 1d d8 1d 43 00    	mov    0x431dd8,%ebx
40e7a7:	8b 2d dc 1d 43 00    	mov    0x431ddc,%ebp
40e7ad:	83 c2 0c             	add    $0xc,%edx
40e7b0:	03 eb                	add    %ebx,%ebp
40e7b2:	3b cd                	cmp    %ebp,%ecx
40e7b4:	7c e3                	jl     0x40e799
40e7b6:	8b 54 24 18          	mov    0x18(%esp),%edx
40e7ba:	8b 00                	mov    (%eax),%eax
40e7bc:	8b 7e 58             	mov    0x58(%esi),%edi
40e7bf:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40e7c4:	75 25                	jne    0x40e7eb
40e7c6:	c7 46 58 83 00 00 00 	movl   $0x83,0x58(%esi)
40e7cd:	8b 46 58             	mov    0x58(%esi),%eax
40e7d0:	50                   	push   %eax
40e7d1:	6a 08                	push   $0x8
40e7d3:	ff d2                	call   *%edx
40e7d5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e7d9:	83 c4 08             	add    $0x8,%esp
40e7dc:	89 7e 58             	mov    %edi,0x58(%esi)
40e7df:	89 4e 54             	mov    %ecx,0x54(%esi)
40e7e2:	83 c8 ff             	or     $0xffffffff,%eax
40e7e5:	5f                   	pop    %edi
40e7e6:	5e                   	pop    %esi
40e7e7:	5d                   	pop    %ebp
40e7e8:	5b                   	pop    %ebx
40e7e9:	59                   	pop    %ecx
40e7ea:	c3                   	ret
40e7eb:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
40e7f0:	75 25                	jne    0x40e817
40e7f2:	c7 46 58 81 00 00 00 	movl   $0x81,0x58(%esi)
40e7f9:	8b 46 58             	mov    0x58(%esi),%eax
40e7fc:	50                   	push   %eax
40e7fd:	6a 08                	push   $0x8
40e7ff:	ff d2                	call   *%edx
40e801:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e805:	83 c4 08             	add    $0x8,%esp
40e808:	89 7e 58             	mov    %edi,0x58(%esi)
40e80b:	89 4e 54             	mov    %ecx,0x54(%esi)
40e80e:	83 c8 ff             	or     $0xffffffff,%eax
40e811:	5f                   	pop    %edi
40e812:	5e                   	pop    %esi
40e813:	5d                   	pop    %ebp
40e814:	5b                   	pop    %ebx
40e815:	59                   	pop    %ecx
40e816:	c3                   	ret
40e817:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
40e81c:	75 25                	jne    0x40e843
40e81e:	c7 46 58 84 00 00 00 	movl   $0x84,0x58(%esi)
40e825:	8b 46 58             	mov    0x58(%esi),%eax
40e828:	50                   	push   %eax
40e829:	6a 08                	push   $0x8
40e82b:	ff d2                	call   *%edx
40e82d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e831:	83 c4 08             	add    $0x8,%esp
40e834:	89 7e 58             	mov    %edi,0x58(%esi)
40e837:	89 4e 54             	mov    %ecx,0x54(%esi)
40e83a:	83 c8 ff             	or     $0xffffffff,%eax
40e83d:	5f                   	pop    %edi
40e83e:	5e                   	pop    %esi
40e83f:	5d                   	pop    %ebp
40e840:	5b                   	pop    %ebx
40e841:	59                   	pop    %ecx
40e842:	c3                   	ret
40e843:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
40e848:	75 25                	jne    0x40e86f
40e84a:	c7 46 58 85 00 00 00 	movl   $0x85,0x58(%esi)
40e851:	8b 46 58             	mov    0x58(%esi),%eax
40e854:	50                   	push   %eax
40e855:	6a 08                	push   $0x8
40e857:	ff d2                	call   *%edx
40e859:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e85d:	83 c4 08             	add    $0x8,%esp
40e860:	89 7e 58             	mov    %edi,0x58(%esi)
40e863:	89 4e 54             	mov    %ecx,0x54(%esi)
40e866:	83 c8 ff             	or     $0xffffffff,%eax
40e869:	5f                   	pop    %edi
40e86a:	5e                   	pop    %esi
40e86b:	5d                   	pop    %ebp
40e86c:	5b                   	pop    %ebx
40e86d:	59                   	pop    %ecx
40e86e:	c3                   	ret
40e86f:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
40e874:	75 25                	jne    0x40e89b
40e876:	c7 46 58 82 00 00 00 	movl   $0x82,0x58(%esi)
40e87d:	8b 46 58             	mov    0x58(%esi),%eax
40e880:	50                   	push   %eax
40e881:	6a 08                	push   $0x8
40e883:	ff d2                	call   *%edx
40e885:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e889:	83 c4 08             	add    $0x8,%esp
40e88c:	89 7e 58             	mov    %edi,0x58(%esi)
40e88f:	89 4e 54             	mov    %ecx,0x54(%esi)
40e892:	83 c8 ff             	or     $0xffffffff,%eax
40e895:	5f                   	pop    %edi
40e896:	5e                   	pop    %esi
40e897:	5d                   	pop    %ebp
40e898:	5b                   	pop    %ebx
40e899:	59                   	pop    %ecx
40e89a:	c3                   	ret
40e89b:	3d 8f 00 00 c0       	cmp    $0xc000008f,%eax
40e8a0:	75 25                	jne    0x40e8c7
40e8a2:	c7 46 58 86 00 00 00 	movl   $0x86,0x58(%esi)
40e8a9:	8b 46 58             	mov    0x58(%esi),%eax
40e8ac:	50                   	push   %eax
40e8ad:	6a 08                	push   $0x8
40e8af:	ff d2                	call   *%edx
40e8b1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e8b5:	83 c4 08             	add    $0x8,%esp
40e8b8:	89 7e 58             	mov    %edi,0x58(%esi)
40e8bb:	89 4e 54             	mov    %ecx,0x54(%esi)
40e8be:	83 c8 ff             	or     $0xffffffff,%eax
40e8c1:	5f                   	pop    %edi
40e8c2:	5e                   	pop    %esi
40e8c3:	5d                   	pop    %ebp
40e8c4:	5b                   	pop    %ebx
40e8c5:	59                   	pop    %ecx
40e8c6:	c3                   	ret
40e8c7:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
40e8cc:	75 07                	jne    0x40e8d5
40e8ce:	c7 46 58 8a 00 00 00 	movl   $0x8a,0x58(%esi)
40e8d5:	8b 46 58             	mov    0x58(%esi),%eax
40e8d8:	50                   	push   %eax
40e8d9:	6a 08                	push   $0x8
40e8db:	ff d2                	call   *%edx
40e8dd:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e8e1:	83 c4 08             	add    $0x8,%esp
40e8e4:	89 7e 58             	mov    %edi,0x58(%esi)
40e8e7:	89 4e 54             	mov    %ecx,0x54(%esi)
40e8ea:	83 c8 ff             	or     $0xffffffff,%eax
40e8ed:	5f                   	pop    %edi
40e8ee:	5e                   	pop    %esi
40e8ef:	5d                   	pop    %ebp
40e8f0:	5b                   	pop    %ebx
40e8f1:	59                   	pop    %ecx
40e8f2:	c3                   	ret
40e8f3:	51                   	push   %ecx
40e8f4:	89 78 08             	mov    %edi,0x8(%eax)
40e8f7:	ff d2                	call   *%edx
40e8f9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e8fd:	83 c4 04             	add    $0x4,%esp
40e900:	89 4e 54             	mov    %ecx,0x54(%esi)
40e903:	83 c8 ff             	or     $0xffffffff,%eax
40e906:	5f                   	pop    %edi
40e907:	5e                   	pop    %esi
40e908:	5d                   	pop    %ebp
40e909:	5b                   	pop    %ebx
40e90a:	59                   	pop    %ecx
40e90b:	c3                   	ret
40e90c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e910:	52                   	push   %edx
40e911:	ff 15 f0 95 43 00    	call   *0x4395f0
40e917:	5f                   	pop    %edi
40e918:	5e                   	pop    %esi
40e919:	5d                   	pop    %ebp
40e91a:	5b                   	pop    %ebx
40e91b:	59                   	pop    %ecx
40e91c:	c3                   	ret
40e91d:	90                   	nop
40e91e:	90                   	nop
40e91f:	90                   	nop
40e920:	8b 54 24 04          	mov    0x4(%esp),%edx
40e924:	56                   	push   %esi
40e925:	8b 74 24 0c          	mov    0xc(%esp),%esi
40e929:	57                   	push   %edi
40e92a:	8b 3d e4 1d 43 00    	mov    0x431de4,%edi