41e798:	e9 23 52 fe ff       	jmp    0x4039c0
41e79d:	eb ef                	jmp    0x41e78e
41e79f:	33 c0                	xor    %eax,%eax
41e7a1:	5a                   	pop    %edx
41e7a2:	59                   	pop    %ecx
41e7a3:	59                   	pop    %ecx
41e7a4:	64 89 10             	mov    %edx,%fs:(%eax)
41e7a7:	68 bf e7 41 00       	push   $0x41e7bf
41e7ac:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e7af:	50                   	push   %eax
41e7b0:	6a 00                	push   $0x0
41e7b2:	e8 31 80 fe ff       	call   0x4067e8
41e7b7:	c3                   	ret
41e7b8:	e9 03 52 fe ff       	jmp    0x4039c0
41e7bd:	eb ed                	jmp    0x41e7ac
41e7bf:	5f                   	pop    %edi
41e7c0:	5e                   	pop    %esi
41e7c1:	5b                   	pop    %ebx
41e7c2:	8b e5                	mov    %ebp,%esp
41e7c4:	5d                   	pop    %ebp
41e7c5:	c2 04 00             	ret    $0x4
41e7c8:	85 c0                	test   %eax,%eax
41e7ca:	75 05                	jne    0x41e7d1
41e7cc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41e7d1:	c3                   	ret
41e7d2:	8b c0                	mov    %eax,%eax
41e7d4:	55                   	push   %ebp
41e7d5:	8b ec                	mov    %esp,%ebp
41e7d7:	83 c4 f8             	add    $0xfffffff8,%esp
41e7da:	53                   	push   %ebx
41e7db:	56                   	push   %esi
41e7dc:	57                   	push   %edi
41e7dd:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e7e0:	33 c9                	xor    %ecx,%ecx
41e7e2:	8a 0a                	mov    (%edx),%cl
41e7e4:	8b 45 08             	mov    0x8(%ebp),%eax
41e7e7:	8b 40 08             	mov    0x8(%eax),%eax
41e7ea:	8b 00                	mov    (%eax),%eax
41e7ec:	2b c8                	sub    %eax,%ecx
41e7ee:	33 db                	xor    %ebx,%ebx
41e7f0:	8a 5a 01             	mov    0x1(%edx),%bl
41e7f3:	8b 55 08             	mov    0x8(%ebp),%edx
41e7f6:	8b 52 08             	mov    0x8(%edx),%edx
41e7f9:	2b 5a 04             	sub    0x4(%edx),%ebx
41e7fc:	8b 75 fc             	mov    -0x4(%ebp),%esi
41e7ff:	0f b6 36             	movzbl (%esi),%esi
41e802:	8b 55 08             	mov    0x8(%ebp),%edx
41e805:	8b 52 08             	mov    0x8(%edx),%edx
41e808:	2b f0                	sub    %eax,%esi
41e80a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e80d:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41e811:	8b 55 08             	mov    0x8(%ebp),%edx
41e814:	8b 52 08             	mov    0x8(%edx),%edx
41e817:	2b 42 04             	sub    0x4(%edx),%eax
41e81a:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e81d:	8b c1                	mov    %ecx,%eax
41e81f:	99                   	cltd
41e820:	33 c2                	xor    %edx,%eax
41e822:	2b c2                	sub    %edx,%eax
41e824:	8b f8                	mov    %eax,%edi
41e826:	8b c6                	mov    %esi,%eax
41e828:	99                   	cltd
41e829:	33 c2                	xor    %edx,%eax
41e82b:	2b c2                	sub    %edx,%eax
41e82d:	3b f8                	cmp    %eax,%edi
41e82f:	7f 26                	jg     0x41e857
41e831:	85 c9                	test   %ecx,%ecx
41e833:	7e 04                	jle    0x41e839
41e835:	3b f1                	cmp    %ecx,%esi
41e837:	7c 1e                	jl     0x41e857
41e839:	8b c3                	mov    %ebx,%eax
41e83b:	99                   	cltd
41e83c:	33 c2                	xor    %edx,%eax
41e83e:	2b c2                	sub    %edx,%eax
41e840:	8b c8                	mov    %eax,%ecx
41e842:	8b 45 f8             	mov    -0x8(%ebp),%eax
41e845:	99                   	cltd
41e846:	33 c2                	xor    %edx,%eax
41e848:	2b c2                	sub    %edx,%eax
41e84a:	3b c8                	cmp    %eax,%ecx
41e84c:	7f 09                	jg     0x41e857
41e84e:	85 db                	test   %ebx,%ebx
41e850:	7e 09                	jle    0x41e85b
41e852:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
41e855:	7e 04                	jle    0x41e85b
41e857:	33 c0                	xor    %eax,%eax
41e859:	eb 02                	jmp    0x41e85d
41e85b:	b0 01                	mov    $0x1,%al
41e85d:	5f                   	pop    %edi
41e85e:	5e                   	pop    %esi
41e85f:	5b                   	pop    %ebx
41e860:	59                   	pop    %ecx
41e861:	59                   	pop    %ecx
41e862:	5d                   	pop    %ebp
41e863:	c3                   	ret
41e864:	55                   	push   %ebp
41e865:	8b ec                	mov    %esp,%ebp
41e867:	83 c4 90             	add    $0xffffff90,%esp
41e86a:	53                   	push   %ebx
41e86b:	56                   	push   %esi
41e86c:	57                   	push   %edi
41e86d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41e870:	89 55 f8             	mov    %edx,-0x8(%ebp)
41e873:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e876:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e879:	8b 45 f4             	mov    -0xc(%ebp),%eax
41e87c:	c1 e0 04             	shl    $0x4,%eax
41e87f:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e882:	8b 45 ec             	mov    -0x14(%ebp),%eax
41e885:	e8 72 92 fe ff       	call   0x407afc
41e88a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e88d:	33 d2                	xor    %edx,%edx
41e88f:	55                   	push   %ebp
41e890:	68 5b eb 41 00       	push   $0x41eb5b
41e895:	64 ff 32             	push   %fs:(%edx)
41e898:	64 89 22             	mov    %esp,%fs:(%edx)
41e89b:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e89e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41e8a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
41e8a4:	8b 30                	mov    (%eax),%esi
41e8a6:	ff 56 0c             	call   *0xc(%esi)
41e8a9:	8b 03                	mov    (%ebx),%eax
41e8ab:	0b 43 04             	or     0x4(%ebx),%eax
41e8ae:	75 1b                	jne    0x41e8cb
41e8b0:	6a 0b                	push   $0xb
41e8b2:	e8 d9 7d fe ff       	call   0x406690
41e8b7:	8b 55 08             	mov    0x8(%ebp),%edx
41e8ba:	89 02                	mov    %eax,(%edx)
41e8bc:	6a 0c                	push   $0xc
41e8be:	e8 cd 7d fe ff       	call   0x406690
41e8c3:	8b 55 08             	mov    0x8(%ebp),%edx
41e8c6:	89 42 04             	mov    %eax,0x4(%edx)
41e8c9:	eb 0d                	jmp    0x41e8d8
41e8cb:	8b 45 08             	mov    0x8(%ebp),%eax
41e8ce:	8b 13                	mov    (%ebx),%edx
41e8d0:	89 10                	mov    %edx,(%eax)
41e8d2:	8b 53 04             	mov    0x4(%ebx),%edx
41e8d5:	89 50 04             	mov    %edx,0x4(%eax)
41e8d8:	6a 00                	push   $0x0
41e8da:	e8 c9 7c fe ff       	call   0x4065a8
41e8df:	89 45 d8             	mov    %eax,-0x28(%ebp)
41e8e2:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
41e8e6:	75 05                	jne    0x41e8ed
41e8e8:	e8 3b f4 ff ff       	call   0x41dd28
41e8ed:	33 d2                	xor    %edx,%edx
41e8ef:	55                   	push   %ebp
41e8f0:	68 4d e9 41 00       	push   $0x41e94d
41e8f5:	64 ff 32             	push   %fs:(%edx)
41e8f8:	64 89 22             	mov    %esp,%fs:(%edx)
41e8fb:	6a 0e                	push   $0xe
41e8fd:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e900:	50                   	push   %eax
41e901:	e8 ba 79 fe ff       	call   0x4062c0
41e906:	8b d8                	mov    %eax,%ebx
41e908:	6a 0c                	push   $0xc
41e90a:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e90d:	50                   	push   %eax
41e90e:	e8 ad 79 fe ff       	call   0x4062c0
41e913:	66 0f af d8          	imul   %ax,%bx
41e917:	8b c3                	mov    %ebx,%eax
41e919:	66 83 f8 08          	cmp    $0x8,%ax
41e91d:	76 09                	jbe    0x41e928
41e91f:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41e926:	eb 0c                	jmp    0x41e934
41e928:	8b c8                	mov    %eax,%ecx
41e92a:	b8 01 00 00 00       	mov    $0x1,%eax
41e92f:	d3 e0                	shl    %cl,%eax
41e931:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41e934:	33 c0                	xor    %eax,%eax
41e936:	5a                   	pop    %edx
41e937:	59                   	pop    %ecx
41e938:	59                   	pop    %ecx
41e939:	64 89 10             	mov    %edx,%fs:(%eax)
41e93c:	68 54 e9 41 00       	push   $0x41e954
41e941:	8b 45 d8             	mov    -0x28(%ebp),%eax
41e944:	50                   	push   %eax
41e945:	6a 00                	push   $0x0
41e947:	e8 9c 7e fe ff       	call   0x4067e8
41e94c:	c3                   	ret
41e94d:	e9 6e 50 fe ff       	jmp    0x4039c0
41e952:	eb ed                	jmp    0x41e941
41e954:	33 c0                	xor    %eax,%eax
41e956:	89 45 dc             	mov    %eax,-0x24(%ebp)
41e959:	8b 45 f0             	mov    -0x10(%ebp),%eax
41e95c:	0f b7 40 02          	movzwl 0x2(%eax),%eax
41e960:	e8 63 fe ff ff       	call   0x41e7c8
41e965:	89 45 e0             	mov    %eax,-0x20(%ebp)
41e968:	8b 7d f4             	mov    -0xc(%ebp),%edi
41e96b:	4f                   	dec    %edi
41e96c:	85 ff                	test   %edi,%edi
41e96e:	7e 4c                	jle    0x41e9bc
41e970:	be 01 00 00 00       	mov    $0x1,%esi
41e975:	8b c6                	mov    %esi,%eax
41e977:	03 c0                	add    %eax,%eax
41e979:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e97c:	0f b7 44 c2 02       	movzwl 0x2(%edx,%eax,8),%eax
41e981:	e8 42 fe ff ff       	call   0x41e7c8
41e986:	8b d8                	mov    %eax,%ebx
41e988:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
41e98b:	7f 2b                	jg     0x41e9b8
41e98d:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
41e990:	7c 26                	jl     0x41e9b8
41e992:	55                   	push   %ebp
41e993:	8b c6                	mov    %esi,%eax
41e995:	03 c0                	add    %eax,%eax
41e997:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e99a:	8d 14 c2             	lea    (%edx,%eax,8),%edx
41e99d:	8b 45 dc             	mov    -0x24(%ebp),%eax
41e9a0:	03 c0                	add    %eax,%eax
41e9a2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41e9a5:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
41e9a8:	e8 27 fe ff ff       	call   0x41e7d4
41e9ad:	59                   	pop    %ecx
41e9ae:	84 c0                	test   %al,%al
41e9b0:	74 06                	je     0x41e9b8
41e9b2:	89 75 dc             	mov    %esi,-0x24(%ebp)
41e9b5:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41e9b8:	46                   	inc    %esi
41e9b9:	4f                   	dec    %edi
41e9ba:	75 b9                	jne    0x41e975
41e9bc:	8b 45 dc             	mov    -0x24(%ebp),%eax
41e9bf:	03 c0                	add    %eax,%eax
41e9c1:	8b 55 f0             	mov    -0x10(%ebp),%edx
41e9c4:	8d 04 c2             	lea    (%edx,%eax,8),%eax
41e9c7:	89 45 c0             	mov    %eax,-0x40(%ebp)
41e9ca:	8b 45 c0             	mov    -0x40(%ebp),%eax
41e9cd:	0f b6 00             	movzbl (%eax),%eax
41e9d0:	8b 55 08             	mov    0x8(%ebp),%edx
41e9d3:	89 02                	mov    %eax,(%edx)
41e9d5:	8b 45 c0             	mov    -0x40(%ebp),%eax
41e9d8:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41e9dc:	8b 55 08             	mov    0x8(%ebp),%edx
41e9df:	89 42 04             	mov    %eax,0x4(%edx)
41e9e2:	8b 45 c0             	mov    -0x40(%ebp),%eax
41e9e5:	8b 40 08             	mov    0x8(%eax),%eax
41e9e8:	e8 0f 91 fe ff       	call   0x407afc
41e9ed:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41e9f0:	33 c0                	xor    %eax,%eax
41e9f2:	55                   	push   %ebp
41e9f3:	68 3b eb 41 00       	push   $0x41eb3b
41e9f8:	64 ff 30             	push   %fs:(%eax)
41e9fb:	64 89 20             	mov    %esp,%fs:(%eax)
41e9fe:	8b 45 c0             	mov    -0x40(%ebp),%eax
41ea01:	8b 50 0c             	mov    0xc(%eax),%edx
41ea04:	8b 45 ec             	mov    -0x14(%ebp),%eax
41ea07:	03 45 10             	add    0x10(%ebp),%eax
41ea0a:	2b d0                	sub    %eax,%edx
41ea0c:	66 b9 01 00          	mov    $0x1,%cx
41ea10:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ea13:	8b 18                	mov    (%eax),%ebx
41ea15:	ff 53 14             	call   *0x14(%ebx)
41ea18:	8b 45 c0             	mov    -0x40(%ebp),%eax
41ea1b:	8b 48 08             	mov    0x8(%eax),%ecx
41ea1e:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
41ea21:	8b d3                	mov    %ebx,%edx
41ea23:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ea26:	8b 30                	mov    (%eax),%esi
41ea28:	ff 56 0c             	call   *0xc(%esi)
41ea2b:	8b 45 08             	mov    0x8(%ebp),%eax
41ea2e:	50                   	push   %eax
41ea2f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41ea32:	8d 55 cc             	lea    -0x34(%ebp),%edx
41ea35:	8b c3                	mov    %ebx,%eax
41ea37:	e8 d0 fb ff ff       	call   0x41e60c
41ea3c:	8d 45 90             	lea    -0x70(%ebp),%eax
41ea3f:	50                   	push   %eax
41ea40:	6a 18                	push   $0x18
41ea42:	8b 45 c8             	mov    -0x38(%ebp),%eax
41ea45:	50                   	push   %eax
41ea46:	e8 95 78 fe ff       	call   0x4062e0
41ea4b:	8d 45 a8             	lea    -0x58(%ebp),%eax
41ea4e:	50                   	push   %eax
41ea4f:	6a 18                	push   $0x18
41ea51:	8b 45 cc             	mov    -0x34(%ebp),%eax
41ea54:	50                   	push   %eax
41ea55:	e8 86 78 fe ff       	call   0x4062e0
41ea5a:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
41ea5d:	0f af 5d 98          	imul   -0x68(%ebp),%ebx
41ea61:	0f b7 45 a0          	movzwl -0x60(%ebp),%eax
41ea65:	0f af d8             	imul   %eax,%ebx
41ea68:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41ea6b:	f7 6d b0             	imull  -0x50(%ebp)
41ea6e:	0f b7 55 b8          	movzwl -0x48(%ebp),%edx
41ea72:	f7 ea                	imul   %edx
41ea74:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41ea77:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41ea7a:	03 c3                	add    %ebx,%eax
41ea7c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41ea7f:	8b 45 e8             	mov    -0x18(%ebp),%eax
41ea82:	e8 75 90 fe ff       	call   0x407afc
41ea87:	89 45 d0             	mov    %eax,-0x30(%ebp)
41ea8a:	33 c0                	xor    %eax,%eax
41ea8c:	55                   	push   %ebp
41ea8d:	68 18 eb 41 00       	push   $0x41eb18
41ea92:	64 ff 30             	push   %fs:(%eax)
41ea95:	64 89 20             	mov    %esp,%fs:(%eax)
41ea98:	8b 7d d0             	mov    -0x30(%ebp),%edi
41ea9b:	8b 75 d0             	mov    -0x30(%ebp),%esi
41ea9e:	03 f3                	add    %ebx,%esi
41eaa0:	57                   	push   %edi
41eaa1:	53                   	push   %ebx
41eaa2:	8b 45 c8             	mov    -0x38(%ebp),%eax
41eaa5:	50                   	push   %eax
41eaa6:	e8 dd 77 fe ff       	call   0x406288
41eaab:	56                   	push   %esi
41eaac:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41eaaf:	50                   	push   %eax
41eab0:	8b 45 cc             	mov    -0x34(%ebp),%eax
41eab3:	50                   	push   %eax
41eab4:	e8 cf 77 fe ff       	call   0x406288
41eab9:	8b 45 cc             	mov    -0x34(%ebp),%eax
41eabc:	50                   	push   %eax
41eabd:	e8 b6 77 fe ff       	call   0x406278
41eac2:	8b 45 c8             	mov    -0x38(%ebp),%eax
41eac5:	50                   	push   %eax
41eac6:	e8 ad 77 fe ff       	call   0x406278
41eacb:	56                   	push   %esi
41eacc:	57                   	push   %edi
41eacd:	8a 45 ba             	mov    -0x46(%ebp),%al
41ead0:	50                   	push   %eax
41ead1:	8a 45 b8             	mov    -0x48(%ebp),%al
41ead4:	50                   	push   %eax
41ead5:	8b 45 08             	mov    0x8(%ebp),%eax
41ead8:	8b 40 04             	mov    0x4(%eax),%eax
41eadb:	50                   	push   %eax
41eadc:	8b 45 08             	mov    0x8(%ebp),%eax
41eadf:	8b 00                	mov    (%eax),%eax
41eae1:	50                   	push   %eax
41eae2:	a1 64 96 46 00       	mov    0x469664,%eax
41eae7:	50                   	push   %eax
41eae8:	e8 8b 79 fe ff       	call   0x406478
41eaed:	8b 55 f8             	mov    -0x8(%ebp),%edx
41eaf0:	89 02                	mov    %eax,(%edx)
41eaf2:	8b 45 f8             	mov    -0x8(%ebp),%eax
41eaf5:	83 38 00             	cmpl   $0x0,(%eax)
41eaf8:	75 05                	jne    0x41eaff
41eafa:	e8 7d f2 ff ff       	call   0x41dd7c
41eaff:	33 c0                	xor    %eax,%eax
41eb01:	5a                   	pop    %edx
41eb02:	59                   	pop    %ecx
41eb03:	59                   	pop    %ecx
41eb04:	64 89 10             	mov    %edx,%fs:(%eax)
41eb07:	68 1f eb 41 00       	push   $0x41eb1f
41eb0c:	8b 55 e8             	mov    -0x18(%ebp),%edx
41eb0f:	8b 45 d0             	mov    -0x30(%ebp),%eax
41eb12:	e8 c5 3b fe ff       	call   0x4026dc
41eb17:	c3                   	ret
41eb18:	e9 a3 4e fe ff       	jmp    0x4039c0
41eb1d:	eb ed                	jmp    0x41eb0c
41eb1f:	33 c0                	xor    %eax,%eax