40f789:	cc                   	int3
40f78a:	cc                   	int3
40f78b:	cc                   	int3
40f78c:	cc                   	int3
40f78d:	cc                   	int3
40f78e:	cc                   	int3
40f78f:	cc                   	int3
40f790:	8b ff                	mov    %edi,%edi
40f792:	55                   	push   %ebp
40f793:	8b ec                	mov    %esp,%ebp
40f795:	83 ec 0c             	sub    $0xc,%esp
40f798:	53                   	push   %ebx
40f799:	56                   	push   %esi
40f79a:	57                   	push   %edi
40f79b:	8b 7d 08             	mov    0x8(%ebp),%edi
40f79e:	33 f6                	xor    %esi,%esi
40f7a0:	85 ff                	test   %edi,%edi
40f7a2:	74 29                	je     0x40f7cd
40f7a4:	8d 55 0c             	lea    0xc(%ebp),%edx
40f7a7:	8b 4a 04             	mov    0x4(%edx),%ecx
40f7aa:	8d 52 04             	lea    0x4(%edx),%edx
40f7ad:	85 c9                	test   %ecx,%ecx
40f7af:	74 14                	je     0x40f7c5
40f7b1:	8d 59 02             	lea    0x2(%ecx),%ebx
40f7b4:	66 8b 01             	mov    (%ecx),%ax
40f7b7:	83 c1 02             	add    $0x2,%ecx
40f7ba:	66 85 c0             	test   %ax,%ax
40f7bd:	75 f5                	jne    0x40f7b4
40f7bf:	2b cb                	sub    %ebx,%ecx
40f7c1:	d1 f9                	sar    $1,%ecx
40f7c3:	03 f1                	add    %ecx,%esi
40f7c5:	83 ef 01             	sub    $0x1,%edi
40f7c8:	75 dd                	jne    0x40f7a7
40f7ca:	8b 7d 08             	mov    0x8(%ebp),%edi
40f7cd:	8d 46 01             	lea    0x1(%esi),%eax
40f7d0:	50                   	push   %eax
40f7d1:	6a 00                	push   $0x0
40f7d3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f7d6:	ff 15 20 30 45 00    	call   *0x453020
40f7dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f7df:	89 01                	mov    %eax,(%ecx)
40f7e1:	85 c0                	test   %eax,%eax
40f7e3:	0f 84 f5 97 01 00    	je     0x428fde
40f7e9:	33 f6                	xor    %esi,%esi
40f7eb:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f7ee:	85 ff                	test   %edi,%edi
40f7f0:	0f 84 96 00 00 00    	je     0x40f88c
40f7f6:	8d 45 0c             	lea    0xc(%ebp),%eax
40f7f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f800:	8b 58 04             	mov    0x4(%eax),%ebx
40f803:	83 c0 04             	add    $0x4,%eax
40f806:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f809:	85 db                	test   %ebx,%ebx
40f80b:	74 73                	je     0x40f880
40f80d:	8b 01                	mov    (%ecx),%eax
40f80f:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f812:	8d 04 70             	lea    (%eax,%esi,2),%eax
40f815:	2b d6                	sub    %esi,%edx
40f817:	0f 84 b4 97 01 00    	je     0x428fd1
40f81d:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40f823:	0f 87 a8 97 01 00    	ja     0x428fd1
40f829:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40f82e:	8b fb                	mov    %ebx,%edi
40f830:	2b f2                	sub    %edx,%esi
40f832:	2b f8                	sub    %eax,%edi
40f834:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
40f837:	85 c9                	test   %ecx,%ecx
40f839:	74 19                	je     0x40f854
40f83b:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40f83f:	66 85 c9             	test   %cx,%cx
40f842:	74 10                	je     0x40f854
40f844:	66 89 08             	mov    %cx,(%eax)
40f847:	83 c0 02             	add    $0x2,%eax
40f84a:	83 ea 01             	sub    $0x1,%edx
40f84d:	75 e5                	jne    0x40f834
40f84f:	83 e8 02             	sub    $0x2,%eax
40f852:	eb 04                	jmp    0x40f858
40f854:	85 d2                	test   %edx,%edx
40f856:	74 f7                	je     0x40f84f
40f858:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f85b:	8b 7d 08             	mov    0x8(%ebp),%edi
40f85e:	33 c9                	xor    %ecx,%ecx
40f860:	66 89 08             	mov    %cx,(%eax)
40f863:	8d 4b 02             	lea    0x2(%ebx),%ecx
40f866:	66 8b 03             	mov    (%ebx),%ax
40f869:	83 c3 02             	add    $0x2,%ebx
40f86c:	66 85 c0             	test   %ax,%ax
40f86f:	75 f5                	jne    0x40f866
40f871:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f874:	2b d9                	sub    %ecx,%ebx
40f876:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f879:	d1 fb                	sar    $1,%ebx
40f87b:	03 f3                	add    %ebx,%esi
40f87d:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f880:	83 ef 01             	sub    $0x1,%edi
40f883:	89 7d 08             	mov    %edi,0x8(%ebp)
40f886:	0f 85 74 ff ff ff    	jne    0x40f800
40f88c:	8b 09                	mov    (%ecx),%ecx
40f88e:	33 d2                	xor    %edx,%edx
40f890:	33 c0                	xor    %eax,%eax
40f892:	66 89 14 71          	mov    %dx,(%ecx,%esi,2)
40f896:	5f                   	pop    %edi
40f897:	5e                   	pop    %esi
40f898:	5b                   	pop    %ebx
40f899:	8b e5                	mov    %ebp,%esp
40f89b:	5d                   	pop    %ebp
40f89c:	c3                   	ret
40f89d:	cc                   	int3
40f89e:	cc                   	int3
40f89f:	cc                   	int3
40f8a0:	8b ff                	mov    %edi,%edi
40f8a2:	55                   	push   %ebp
40f8a3:	8b ec                	mov    %esp,%ebp
40f8a5:	83 ec 14             	sub    $0x14,%esp
40f8a8:	53                   	push   %ebx
40f8a9:	56                   	push   %esi
40f8aa:	57                   	push   %edi
40f8ab:	a1 00 f0 44 00       	mov    0x44f000,%eax
40f8b0:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f8b3:	8b 75 0c             	mov    0xc(%ebp),%esi
40f8b6:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
40f8bb:	74 0a                	je     0x40f8c7
40f8bd:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
40f8c1:	0f 85 21 97 01 00    	jne    0x428fe8
40f8c7:	8b 7d 08             	mov    0x8(%ebp),%edi
40f8ca:	8b d6                	mov    %esi,%edx
40f8cc:	81 e2 ff e0 ff ff    	and    $0xffffe0ff,%edx
40f8d2:	89 55 f0             	mov    %edx,-0x10(%ebp)
40f8d5:	0f 85 2d 01 00 00    	jne    0x40fa08
40f8db:	83 7f 58 00          	cmpl   $0x0,0x58(%edi)
40f8df:	0f 85 da 01 00 00    	jne    0x40fabf
40f8e5:	80 bf 94 00 00 00 00 	cmpb   $0x0,0x94(%edi)
40f8ec:	8d 77 7c             	lea    0x7c(%edi),%esi
40f8ef:	89 75 f4             	mov    %esi,-0xc(%ebp)
40f8f2:	0f 84 3c 97 01 00    	je     0x429034
40f8f8:	8b ce                	mov    %esi,%ecx
40f8fa:	e8 a1 c2 ff ff       	call   0x40bba0
40f8ff:	84 c0                	test   %al,%al
40f901:	0f 84 2d 97 01 00    	je     0x429034
40f907:	8b 5f 70             	mov    0x70(%edi),%ebx
40f90a:	85 db                	test   %ebx,%ebx
40f90c:	0f 84 98 01 00 00    	je     0x40faaa
40f912:	a1 80 0b 45 00       	mov    0x450b80,%eax
40f917:	8b 70 08             	mov    0x8(%eax),%esi
40f91a:	8b 78 04             	mov    0x4(%eax),%edi
40f91d:	83 e6 05             	and    $0x5,%esi
40f920:	83 ce 08             	or     $0x8,%esi
40f923:	85 ff                	test   %edi,%edi
40f925:	0f 84 f3 96 01 00    	je     0x42901e
40f92b:	33 c9                	xor    %ecx,%ecx
40f92d:	8b c3                	mov    %ebx,%eax
40f92f:	ba 04 00 00 00       	mov    $0x4,%edx
40f934:	f7 e2                	mul    %edx
40f936:	0f 90 c1             	seto   %cl
40f939:	f7 d9                	neg    %ecx
40f93b:	0b c8                	or     %eax,%ecx
40f93d:	51                   	push   %ecx
40f93e:	56                   	push   %esi
40f93f:	57                   	push   %edi
40f940:	ff 15 78 10 45 00    	call   *0x451078
40f946:	8b f0                	mov    %eax,%esi
40f948:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f94b:	85 f6                	test   %esi,%esi
40f94d:	0f 84 c5 96 01 00    	je     0x429018
40f953:	33 ff                	xor    %edi,%edi
40f955:	85 db                	test   %ebx,%ebx
40f957:	7e 4b                	jle    0x40f9a4
40f959:	8b 75 08             	mov    0x8(%ebp),%esi
40f95c:	8d 64 24 00          	lea    0x0(%esp),%esp
40f960:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f963:	50                   	push   %eax
40f964:	8d 4e 60             	lea    0x60(%esi),%ecx
40f967:	e8 24 05 00 00       	call   0x40fe90
40f96c:	85 c0                	test   %eax,%eax
40f96e:	75 2c                	jne    0x40f99c
40f970:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f973:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f976:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
40f979:	8b 46 60             	mov    0x60(%esi),%eax
40f97c:	3b 46 64             	cmp    0x64(%esi),%eax
40f97f:	75 08                	jne    0x40f989
40f981:	8b 46 68             	mov    0x68(%esi),%eax
40f984:	3b 46 6c             	cmp    0x6c(%esi),%eax
40f987:	74 13                	je     0x40f99c
40f989:	ff 46 68             	incl   0x68(%esi)
40f98c:	81 7e 68 00 01 00 00 	cmpl   $0x100,0x68(%esi)
40f993:	0f 84 a5 96 01 00    	je     0x42903e
40f999:	ff 4e 70             	decl   0x70(%esi)
40f99c:	47                   	inc    %edi
40f99d:	3b fb                	cmp    %ebx,%edi
40f99f:	7c bf                	jl     0x40f960
40f9a1:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f9a4:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f9a7:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
40f9ab:	74 07                	je     0x40f9b4
40f9ad:	50                   	push   %eax
40f9ae:	ff 15 40 11 45 00    	call   *0x451140
40f9b4:	56                   	push   %esi
40f9b5:	53                   	push   %ebx
40f9b6:	ff 75 08             	push   0x8(%ebp)
40f9b9:	e8 02 de 00 00       	call   0x41d7c0
40f9be:	33 ff                	xor    %edi,%edi
40f9c0:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f9c3:	85 db                	test   %ebx,%ebx
40f9c5:	7e 1f                	jle    0x40f9e6
40f9c7:	8b 0c be             	mov    (%esi,%edi,4),%ecx
40f9ca:	85 c9                	test   %ecx,%ecx
40f9cc:	74 13                	je     0x40f9e1
40f9ce:	8b 01                	mov    (%ecx),%eax
40f9d0:	51                   	push   %ecx
40f9d1:	8b 70 08             	mov    0x8(%eax),%esi
40f9d4:	8b ce                	mov    %esi,%ecx
40f9d6:	ff 15 c4 12 45 00    	call   *0x4512c4
40f9dc:	ff d6                	call   *%esi
40f9de:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f9e1:	47                   	inc    %edi
40f9e2:	3b fb                	cmp    %ebx,%edi
40f9e4:	7c e1                	jl     0x40f9c7
40f9e6:	8b ce                	mov    %esi,%ecx
40f9e8:	e8 23 06 00 00       	call   0x410010
40f9ed:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f9f0:	8b 7d 08             	mov    0x8(%ebp),%edi
40f9f3:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f9f6:	85 c0                	test   %eax,%eax
40f9f8:	78 02                	js     0x40f9fc
40f9fa:	8b c3                	mov    %ebx,%eax
40f9fc:	ff 75 18             	push   0x18(%ebp)
40f9ff:	ff 75 14             	push   0x14(%ebp)
40fa02:	50                   	push   %eax
40fa03:	ff 75 0c             	push   0xc(%ebp)
40fa06:	eb 08                	jmp    0x40fa10
40fa08:	ff 75 18             	push   0x18(%ebp)
40fa0b:	ff 75 14             	push   0x14(%ebp)
40fa0e:	53                   	push   %ebx
40fa0f:	56                   	push   %esi
40fa10:	57                   	push   %edi
40fa11:	e8 ea d5 00 00       	call   0x41d000
40fa16:	8b 55 f0             	mov    -0x10(%ebp),%edx
40fa19:	8b f0                	mov    %eax,%esi
40fa1b:	a1 00 f0 44 00       	mov    0x44f000,%eax
40fa20:	8b 8f a4 00 00 00    	mov    0xa4(%edi),%ecx
40fa26:	85 c9                	test   %ecx,%ecx
40fa28:	74 54                	je     0x40fa7e
40fa2a:	85 d2                	test   %edx,%edx
40fa2c:	75 50                	jne    0x40fa7e
40fa2e:	ff 75 18             	push   0x18(%ebp)
40fa31:	8b 81 34 01 00 00    	mov    0x134(%ecx),%eax
40fa37:	ff 75 14             	push   0x14(%ebp)
40fa3a:	53                   	push   %ebx
40fa3b:	ff b7 a0 00 00 00    	push   0xa0(%edi)
40fa41:	ff b7 9c 00 00 00    	push   0x9c(%edi)
40fa47:	ff b7 98 00 00 00    	push   0x98(%edi)
40fa4d:	ff b1 44 01 00 00    	push   0x144(%ecx)
40fa53:	ff b1 38 01 00 00    	push   0x138(%ecx)
40fa59:	ff b1 3c 01 00 00    	push   0x13c(%ecx)
40fa5f:	ff 70 38             	push   0x38(%eax)
40fa62:	ff b1 40 01 00 00    	push   0x140(%ecx)
40fa68:	6a 01                	push   $0x1
40fa6a:	ff 35 f0 09 45 00    	push   0x4509f0
40fa70:	ff 15 24 10 45 00    	call   *0x451024
40fa76:	a1 00 f0 44 00       	mov    0x44f000,%eax
40fa7b:	83 c4 34             	add    $0x34,%esp
40fa7e:	81 fe 08 10 04 80    	cmp    $0x80041008,%esi
40fa84:	75 0b                	jne    0x40fa91
40fa86:	8b c6                	mov    %esi,%eax
40fa88:	5f                   	pop    %edi
40fa89:	5e                   	pop    %esi
40fa8a:	5b                   	pop    %ebx
40fa8b:	8b e5                	mov    %ebp,%esp
40fa8d:	5d                   	pop    %ebp
40fa8e:	c2 14 00             	ret    $0x14
40fa91:	85 f6                	test   %esi,%esi
40fa93:	78 34                	js     0x40fac9
40fa95:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
40fa9a:	74 0a                	je     0x40faa6
40fa9c:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
40faa0:	0f 85 ac 95 01 00    	jne    0x429052
40faa6:	8b c6                	mov    %esi,%eax
40faa8:	eb de                	jmp    0x40fa88
40faaa:	80 7e 18 00          	cmpb   $0x0,0x18(%esi)
40faae:	74 07                	je     0x40fab7
40fab0:	56                   	push   %esi
40fab1:	ff 15 40 11 45 00    	call   *0x451140
40fab7:	8b 5d 10             	mov    0x10(%ebp),%ebx
40faba:	e9 3b ff ff ff       	jmp    0x40f9fa
40fabf:	be 33 10 04 80       	mov    $0x80041033,%esi
40fac4:	e9 57 ff ff ff       	jmp    0x40fa20
40fac9:	56                   	push   %esi
40faca:	ff 15 a0 12 45 00    	call   *0x4512a0
40fad0:	8b c8                	mov    %eax,%ecx
40fad2:	ff 15 a4 12 45 00    	call   *0x4512a4
40fad8:	a1 00 f0 44 00       	mov    0x44f000,%eax
40fadd:	eb b6                	jmp    0x40fa95
40fadf:	cc                   	int3
40fae0:	8b ff                	mov    %edi,%edi
40fae2:	55                   	push   %ebp
40fae3:	8b ec                	mov    %esp,%ebp
40fae5:	6a ff                	push   $0xffffffff
40fae7:	68 d8 33 42 00       	push   $0x4233d8
40faec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40faf2:	50                   	push   %eax
40faf3:	83 ec 34             	sub    $0x34,%esp
40faf6:	53                   	push   %ebx
40faf7:	56                   	push   %esi
40faf8:	57                   	push   %edi
40faf9:	a1 54 02 45 00       	mov    0x450254,%eax
40fafe:	33 c5                	xor    %ebp,%eax
40fb00:	50                   	push   %eax
40fb01:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fb04:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40fb0a:	8b 45 08             	mov    0x8(%ebp),%eax
40fb0d:	33 f6                	xor    %esi,%esi
40fb0f:	39 70 58             	cmp    %esi,0x58(%eax)
40fb12:	0f 85 c0 02 00 00    	jne    0x40fdd8
40fb18:	80 b8 94 00 00 00 00 	cmpb   $0x0,0x94(%eax)
40fb1f:	8d 78 7c             	lea    0x7c(%eax),%edi
40fb22:	89 7d ec             	mov    %edi,-0x14(%ebp)
40fb25:	0f 84 92 95 01 00    	je     0x4290bd
40fb2b:	8b cf                	mov    %edi,%ecx
40fb2d:	e8 6e c0 ff ff       	call   0x40bba0
40fb32:	84 c0                	test   %al,%al
40fb34:	0f 84 83 95 01 00    	je     0x4290bd
40fb3a:	8b 45 0c             	mov    0xc(%ebp),%eax
40fb3d:	33 db                	xor    %ebx,%ebx
40fb3f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40fb42:	3b d8                	cmp    %eax,%ebx
40fb44:	0f 8d 10 01 00 00    	jge    0x40fc5a
40fb4a:	8b 4d 10             	mov    0x10(%ebp),%ecx
40fb4d:	8b 0c 99             	mov    (%ecx,%ebx,4),%ecx
40fb50:	85 c9                	test   %ecx,%ecx
40fb52:	0f 84 f6 00 00 00    	je     0x40fc4e
40fb58:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40fb5f:	8d 55 f0             	lea    -0x10(%ebp),%edx
40fb62:	8b 01                	mov    (%ecx),%eax
40fb64:	52                   	push   %edx
40fb65:	51                   	push   %ecx
40fb66:	8b 70 30             	mov    0x30(%eax),%esi
40fb69:	8b ce                	mov    %esi,%ecx
40fb6b:	ff 15 c4 12 45 00    	call   *0x4512c4
40fb71:	ff d6                	call   *%esi
40fb73:	8b f0                	mov    %eax,%esi
40fb75:	89 75 e0             	mov    %esi,-0x20(%ebp)
40fb78:	85 f6                	test   %esi,%esi
40fb7a:	0f 88 cb 00 00 00    	js     0x40fc4b
40fb80:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40fb83:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40fb86:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40fb8d:	8d 45 d8             	lea    -0x28(%ebp),%eax
40fb90:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40fb93:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)