40a6df:	cc                   	int3
40a6e0:	8b c1                	mov    %ecx,%eax
40a6e2:	c3                   	ret
40a6e3:	cc                   	int3
40a6e4:	cc                   	int3
40a6e5:	cc                   	int3
40a6e6:	cc                   	int3
40a6e7:	cc                   	int3
40a6e8:	cc                   	int3
40a6e9:	cc                   	int3
40a6ea:	cc                   	int3
40a6eb:	cc                   	int3
40a6ec:	cc                   	int3
40a6ed:	cc                   	int3
40a6ee:	cc                   	int3
40a6ef:	cc                   	int3
40a6f0:	55                   	push   %ebp
40a6f1:	8b ec                	mov    %esp,%ebp
40a6f3:	51                   	push   %ecx
40a6f4:	8b 45 08             	mov    0x8(%ebp),%eax
40a6f7:	8b d0                	mov    %eax,%edx
40a6f9:	53                   	push   %ebx
40a6fa:	56                   	push   %esi
40a6fb:	8b f1                	mov    %ecx,%esi
40a6fd:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40a701:	72 02                	jb     0x40a705
40a703:	8b 10                	mov    (%eax),%edx
40a705:	8b 48 10             	mov    0x10(%eax),%ecx
40a708:	8b 46 14             	mov    0x14(%esi),%eax
40a70b:	8b 5e 10             	mov    0x10(%esi),%ebx
40a70e:	2b c3                	sub    %ebx,%eax
40a710:	3b c8                	cmp    %eax,%ecx
40a712:	77 38                	ja     0x40a74c
40a714:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a718:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
40a71b:	57                   	push   %edi
40a71c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a71f:	8b fe                	mov    %esi,%edi
40a721:	89 46 10             	mov    %eax,0x10(%esi)
40a724:	72 02                	jb     0x40a728
40a726:	8b 3e                	mov    (%esi),%edi
40a728:	03 c9                	add    %ecx,%ecx
40a72a:	51                   	push   %ecx
40a72b:	52                   	push   %edx
40a72c:	8d 0c 5f             	lea    (%edi,%ebx,2),%ecx
40a72f:	51                   	push   %ecx
40a730:	e8 1b 2d 01 00       	call   0x41d450
40a735:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a738:	83 c4 0c             	add    $0xc,%esp
40a73b:	33 c9                	xor    %ecx,%ecx
40a73d:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40a741:	8b c6                	mov    %esi,%eax
40a743:	5f                   	pop    %edi
40a744:	5e                   	pop    %esi
40a745:	5b                   	pop    %ebx
40a746:	8b e5                	mov    %ebp,%esp
40a748:	5d                   	pop    %ebp
40a749:	c2 04 00             	ret    $0x4
40a74c:	51                   	push   %ecx
40a74d:	52                   	push   %edx
40a74e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40a752:	ff 75 fc             	push   -0x4(%ebp)
40a755:	51                   	push   %ecx
40a756:	8b ce                	mov    %esi,%ecx
40a758:	e8 e3 7f ff ff       	call   0x402740
40a75d:	5e                   	pop    %esi
40a75e:	5b                   	pop    %ebx
40a75f:	8b e5                	mov    %ebp,%esp
40a761:	5d                   	pop    %ebp
40a762:	c2 04 00             	ret    $0x4
40a765:	cc                   	int3
40a766:	cc                   	int3
40a767:	cc                   	int3
40a768:	cc                   	int3
40a769:	cc                   	int3
40a76a:	cc                   	int3
40a76b:	cc                   	int3
40a76c:	cc                   	int3
40a76d:	cc                   	int3
40a76e:	cc                   	int3
40a76f:	cc                   	int3
40a770:	55                   	push   %ebp
40a771:	8b ec                	mov    %esp,%ebp
40a773:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40a777:	56                   	push   %esi
40a778:	8b f1                	mov    %ecx,%esi
40a77a:	c7 06 9c f8 43 00    	movl   $0x43f89c,(%esi)
40a780:	74 0b                	je     0x40a78d
40a782:	6a 08                	push   $0x8
40a784:	56                   	push   %esi
40a785:	e8 84 11 01 00       	call   0x41b90e
40a78a:	83 c4 08             	add    $0x8,%esp
40a78d:	8b c6                	mov    %esi,%eax
40a78f:	5e                   	pop    %esi
40a790:	5d                   	pop    %ebp
40a791:	c2 04 00             	ret    $0x4
40a794:	cc                   	int3
40a795:	cc                   	int3
40a796:	cc                   	int3
40a797:	cc                   	int3
40a798:	cc                   	int3
40a799:	cc                   	int3
40a79a:	cc                   	int3
40a79b:	cc                   	int3
40a79c:	cc                   	int3
40a79d:	cc                   	int3
40a79e:	cc                   	int3
40a79f:	cc                   	int3
40a7a0:	55                   	push   %ebp
40a7a1:	8b ec                	mov    %esp,%ebp
40a7a3:	51                   	push   %ecx
40a7a4:	8b 51 14             	mov    0x14(%ecx),%edx
40a7a7:	8b ca                	mov    %edx,%ecx
40a7a9:	56                   	push   %esi
40a7aa:	8b 75 08             	mov    0x8(%ebp),%esi
40a7ad:	57                   	push   %edi
40a7ae:	8d 79 02             	lea    0x2(%ecx),%edi
40a7b1:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a7b7:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a7be:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a7c5:	66 8b 01             	mov    (%ecx),%ax
40a7c8:	83 c1 02             	add    $0x2,%ecx
40a7cb:	66 85 c0             	test   %ax,%ax
40a7ce:	75 f5                	jne    0x40a7c5
40a7d0:	2b cf                	sub    %edi,%ecx
40a7d2:	d1 f9                	sar    $1,%ecx
40a7d4:	51                   	push   %ecx
40a7d5:	52                   	push   %edx
40a7d6:	8b ce                	mov    %esi,%ecx
40a7d8:	e8 33 7d ff ff       	call   0x402510
40a7dd:	5f                   	pop    %edi
40a7de:	8b c6                	mov    %esi,%eax
40a7e0:	5e                   	pop    %esi
40a7e1:	8b e5                	mov    %ebp,%esp
40a7e3:	5d                   	pop    %ebp
40a7e4:	c2 04 00             	ret    $0x4
40a7e7:	cc                   	int3
40a7e8:	cc                   	int3
40a7e9:	cc                   	int3
40a7ea:	cc                   	int3
40a7eb:	cc                   	int3
40a7ec:	cc                   	int3
40a7ed:	cc                   	int3
40a7ee:	cc                   	int3
40a7ef:	cc                   	int3
40a7f0:	55                   	push   %ebp
40a7f1:	8b ec                	mov    %esp,%ebp
40a7f3:	51                   	push   %ecx
40a7f4:	8b 51 10             	mov    0x10(%ecx),%edx
40a7f7:	8b ca                	mov    %edx,%ecx
40a7f9:	56                   	push   %esi
40a7fa:	8b 75 08             	mov    0x8(%ebp),%esi
40a7fd:	57                   	push   %edi
40a7fe:	8d 79 02             	lea    0x2(%ecx),%edi
40a801:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a807:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a80e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a815:	66 8b 01             	mov    (%ecx),%ax
40a818:	83 c1 02             	add    $0x2,%ecx
40a81b:	66 85 c0             	test   %ax,%ax
40a81e:	75 f5                	jne    0x40a815
40a820:	2b cf                	sub    %edi,%ecx
40a822:	d1 f9                	sar    $1,%ecx
40a824:	51                   	push   %ecx
40a825:	52                   	push   %edx
40a826:	8b ce                	mov    %esi,%ecx
40a828:	e8 e3 7c ff ff       	call   0x402510
40a82d:	5f                   	pop    %edi
40a82e:	8b c6                	mov    %esi,%eax
40a830:	5e                   	pop    %esi
40a831:	8b e5                	mov    %ebp,%esp
40a833:	5d                   	pop    %ebp
40a834:	c2 04 00             	ret    $0x4
40a837:	cc                   	int3
40a838:	cc                   	int3
40a839:	cc                   	int3
40a83a:	cc                   	int3
40a83b:	cc                   	int3
40a83c:	cc                   	int3
40a83d:	cc                   	int3
40a83e:	cc                   	int3
40a83f:	cc                   	int3
40a840:	55                   	push   %ebp
40a841:	8b ec                	mov    %esp,%ebp
40a843:	51                   	push   %ecx
40a844:	8b 51 08             	mov    0x8(%ecx),%edx
40a847:	8b ca                	mov    %edx,%ecx
40a849:	56                   	push   %esi
40a84a:	8b 75 08             	mov    0x8(%ebp),%esi
40a84d:	57                   	push   %edi
40a84e:	8d 79 01             	lea    0x1(%ecx),%edi
40a851:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a857:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a85e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a865:	8a 01                	mov    (%ecx),%al
40a867:	41                   	inc    %ecx
40a868:	84 c0                	test   %al,%al
40a86a:	75 f9                	jne    0x40a865
40a86c:	2b cf                	sub    %edi,%ecx
40a86e:	51                   	push   %ecx
40a86f:	52                   	push   %edx
40a870:	8b ce                	mov    %esi,%ecx
40a872:	e8 29 18 00 00       	call   0x40c0a0
40a877:	5f                   	pop    %edi
40a878:	8b c6                	mov    %esi,%eax
40a87a:	5e                   	pop    %esi
40a87b:	8b e5                	mov    %ebp,%esp
40a87d:	5d                   	pop    %ebp
40a87e:	c2 04 00             	ret    $0x4
40a881:	cc                   	int3
40a882:	cc                   	int3
40a883:	cc                   	int3
40a884:	cc                   	int3
40a885:	cc                   	int3
40a886:	cc                   	int3
40a887:	cc                   	int3
40a888:	cc                   	int3
40a889:	cc                   	int3
40a88a:	cc                   	int3
40a88b:	cc                   	int3
40a88c:	cc                   	int3
40a88d:	cc                   	int3
40a88e:	cc                   	int3
40a88f:	cc                   	int3
40a890:	66 8b 41 0e          	mov    0xe(%ecx),%ax
40a894:	c3                   	ret
40a895:	cc                   	int3
40a896:	cc                   	int3
40a897:	cc                   	int3
40a898:	cc                   	int3
40a899:	cc                   	int3
40a89a:	cc                   	int3
40a89b:	cc                   	int3
40a89c:	cc                   	int3
40a89d:	cc                   	int3
40a89e:	cc                   	int3
40a89f:	cc                   	int3
40a8a0:	66 8b 41 0c          	mov    0xc(%ecx),%ax
40a8a4:	c3                   	ret
40a8a5:	cc                   	int3
40a8a6:	cc                   	int3
40a8a7:	cc                   	int3
40a8a8:	cc                   	int3
40a8a9:	cc                   	int3
40a8aa:	cc                   	int3
40a8ab:	cc                   	int3
40a8ac:	cc                   	int3
40a8ad:	cc                   	int3
40a8ae:	cc                   	int3
40a8af:	cc                   	int3
40a8b0:	55                   	push   %ebp
40a8b1:	8b ec                	mov    %esp,%ebp
40a8b3:	51                   	push   %ecx
40a8b4:	8b 45 0c             	mov    0xc(%ebp),%eax
40a8b7:	53                   	push   %ebx
40a8b8:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a8bb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a8be:	56                   	push   %esi
40a8bf:	8b 75 14             	mov    0x14(%ebp),%esi
40a8c2:	85 db                	test   %ebx,%ebx
40a8c4:	74 5c                	je     0x40a922
40a8c6:	57                   	push   %edi
40a8c7:	85 f6                	test   %esi,%esi
40a8c9:	74 4a                	je     0x40a915
40a8cb:	8b 46 20             	mov    0x20(%esi),%eax
40a8ce:	83 38 00             	cmpl   $0x0,(%eax)
40a8d1:	74 1e                	je     0x40a8f1
40a8d3:	8b 46 30             	mov    0x30(%esi),%eax
40a8d6:	8b 08                	mov    (%eax),%ecx
40a8d8:	85 c9                	test   %ecx,%ecx
40a8da:	7e 15                	jle    0x40a8f1
40a8dc:	49                   	dec    %ecx
40a8dd:	89 08                	mov    %ecx,(%eax)
40a8df:	8b 4e 20             	mov    0x20(%esi),%ecx
40a8e2:	8b 11                	mov    (%ecx),%edx
40a8e4:	8d 42 02             	lea    0x2(%edx),%eax
40a8e7:	89 01                	mov    %eax,(%ecx)
40a8e9:	8b 45 18             	mov    0x18(%ebp),%eax
40a8ec:	66 89 02             	mov    %ax,(%edx)
40a8ef:	eb 14                	jmp    0x40a905
40a8f1:	8b 06                	mov    (%esi),%eax
40a8f3:	ff 75 18             	push   0x18(%ebp)
40a8f6:	8b 78 0c             	mov    0xc(%eax),%edi
40a8f9:	8b cf                	mov    %edi,%ecx
40a8fb:	ff 15 3c f2 43 00    	call   *0x43f23c
40a901:	8b ce                	mov    %esi,%ecx
40a903:	ff d7                	call   *%edi
40a905:	8b 75 14             	mov    0x14(%ebp),%esi
40a908:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40a90d:	0f b7 c0             	movzwl %ax,%eax
40a910:	66 3b c8             	cmp    %ax,%cx
40a913:	75 04                	jne    0x40a919
40a915:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
40a919:	83 eb 01             	sub    $0x1,%ebx
40a91c:	75 a9                	jne    0x40a8c7
40a91e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a921:	5f                   	pop    %edi
40a922:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a925:	89 70 04             	mov    %esi,0x4(%eax)
40a928:	5e                   	pop    %esi
40a929:	89 08                	mov    %ecx,(%eax)
40a92b:	5b                   	pop    %ebx
40a92c:	8b e5                	mov    %ebp,%esp
40a92e:	5d                   	pop    %ebp
40a92f:	c3                   	ret
40a930:	55                   	push   %ebp
40a931:	8b ec                	mov    %esp,%ebp
40a933:	83 ec 0c             	sub    $0xc,%esp
40a936:	8b 45 0c             	mov    0xc(%ebp),%eax
40a939:	53                   	push   %ebx
40a93a:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a93d:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a940:	56                   	push   %esi
40a941:	8b 75 14             	mov    0x14(%ebp),%esi
40a944:	57                   	push   %edi
40a945:	8b 7d 18             	mov    0x18(%ebp),%edi
40a948:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a94b:	85 db                	test   %ebx,%ebx
40a94d:	74 6d                	je     0x40a9bc
40a94f:	90                   	nop
40a950:	85 f6                	test   %esi,%esi
40a952:	74 56                	je     0x40a9aa
40a954:	8b 46 20             	mov    0x20(%esi),%eax
40a957:	0f b7 0f             	movzwl (%edi),%ecx
40a95a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a95d:	83 38 00             	cmpl   $0x0,(%eax)
40a960:	74 23                	je     0x40a985
40a962:	8b 46 30             	mov    0x30(%esi),%eax
40a965:	8b 00                	mov    (%eax),%eax
40a967:	85 c0                	test   %eax,%eax
40a969:	7e 1a                	jle    0x40a985
40a96b:	8d 48 ff             	lea    -0x1(%eax),%ecx
40a96e:	8b 46 30             	mov    0x30(%esi),%eax
40a971:	89 08                	mov    %ecx,(%eax)
40a973:	8b 4e 20             	mov    0x20(%esi),%ecx
40a976:	8b 11                	mov    (%ecx),%edx
40a978:	8d 42 02             	lea    0x2(%edx),%eax
40a97b:	89 01                	mov    %eax,(%ecx)
40a97d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a980:	66 89 02             	mov    %ax,(%edx)
40a983:	eb 15                	jmp    0x40a99a
40a985:	8b 06                	mov    (%esi),%eax
40a987:	51                   	push   %ecx
40a988:	8b 78 0c             	mov    0xc(%eax),%edi
40a98b:	8b cf                	mov    %edi,%ecx
40a98d:	ff 15 3c f2 43 00    	call   *0x43f23c
40a993:	8b ce                	mov    %esi,%ecx
40a995:	ff d7                	call   *%edi
40a997:	8b 7d fc             	mov    -0x4(%ebp),%edi
40a99a:	8b 75 14             	mov    0x14(%ebp),%esi