41083b:	50                   	push   %eax
41083c:	51                   	push   %ecx
41083d:	b9 d0 41 40 00       	mov    $0x4041d0,%ecx
410842:	e8 22 f8 ff ff       	call   0x410069
410847:	89 44 24 24          	mov    %eax,0x24(%esp)
41084b:	85 c0                	test   %eax,%eax
41084d:	0f 85 c4 00 00 00    	jne    0x410917
410853:	8b 44 24 0c          	mov    0xc(%esp),%eax
410857:	33 d2                	xor    %edx,%edx
410859:	6a 0c                	push   $0xc
41085b:	59                   	pop    %ecx
41085c:	f7 f1                	div    %ecx
41085e:	8b 1b                	mov    (%ebx),%ebx
410860:	f7 da                	neg    %edx
410862:	1b f6                	sbb    %esi,%esi
410864:	33 d2                	xor    %edx,%edx
410866:	f7 d6                	not    %esi
410868:	23 74 24 0c          	and    0xc(%esp),%esi
41086c:	8b c6                	mov    %esi,%eax
41086e:	89 74 24 0c          	mov    %esi,0xc(%esp)
410872:	f7 f1                	div    %ecx
410874:	33 d2                	xor    %edx,%edx
410876:	8b c8                	mov    %eax,%ecx
410878:	8b 44 24 10          	mov    0x10(%esp),%eax
41087c:	8b 40 04             	mov    0x4(%eax),%eax
41087f:	2b c3                	sub    %ebx,%eax
410881:	f7 74 24 18          	divl   0x18(%esp)
410885:	6b c0 0c             	imul   $0xc,%eax,%eax
410888:	03 c3                	add    %ebx,%eax
41088a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41088e:	3b d8                	cmp    %eax,%ebx
410890:	74 64                	je     0x4108f6
410892:	6b c1 0c             	imul   $0xc,%ecx,%eax
410895:	8d 54 24 28          	lea    0x28(%esp),%edx
410899:	03 d0                	add    %eax,%edx
41089b:	8d 44 24 28          	lea    0x28(%esp),%eax
41089f:	3b c2                	cmp    %edx,%eax
4108a1:	74 1e                	je     0x4108c1
4108a3:	8b 3b                	mov    (%ebx),%edi
4108a5:	8b c8                	mov    %eax,%ecx
4108a7:	6a 0c                	push   $0xc
4108a9:	58                   	pop    %eax
4108aa:	39 39                	cmp    %edi,(%ecx)
4108ac:	75 0d                	jne    0x4108bb
4108ae:	66 8b 41 04          	mov    0x4(%ecx),%ax
4108b2:	6a 0c                	push   $0xc
4108b4:	66 3b 43 04          	cmp    0x4(%ebx),%ax
4108b8:	74 25                	je     0x4108df
4108ba:	58                   	pop    %eax
4108bb:	03 c8                	add    %eax,%ecx
4108bd:	3b ca                	cmp    %edx,%ecx
4108bf:	75 e9                	jne    0x4108aa
4108c1:	8d 46 0c             	lea    0xc(%esi),%eax
4108c4:	6a 0c                	push   $0xc
4108c6:	3d 00 10 00 00       	cmp    $0x1000,%eax
4108cb:	77 1c                	ja     0x4108e9
4108cd:	8b fa                	mov    %edx,%edi
4108cf:	8b f3                	mov    %ebx,%esi
4108d1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d4:	8b f0                	mov    %eax,%esi
4108d6:	58                   	pop    %eax
4108d7:	89 74 24 0c          	mov    %esi,0xc(%esp)
4108db:	03 d0                	add    %eax,%edx
4108dd:	eb 0b                	jmp    0x4108ea
4108df:	8b 43 08             	mov    0x8(%ebx),%eax
4108e2:	01 41 08             	add    %eax,0x8(%ecx)
4108e5:	8b 74 24 10          	mov    0x10(%esp),%esi
4108e9:	58                   	pop    %eax
4108ea:	03 d8                	add    %eax,%ebx
4108ec:	3b 5c 24 1c          	cmp    0x1c(%esp),%ebx
4108f0:	75 a9                	jne    0x41089b
4108f2:	8b 7c 24 14          	mov    0x14(%esp),%edi
4108f6:	6a 01                	push   $0x1
4108f8:	ff 74 24 24          	push   0x24(%esp)
4108fc:	8d 54 24 30          	lea    0x30(%esp),%edx
410900:	51                   	push   %ecx
410901:	51                   	push   %ecx
410902:	56                   	push   %esi
410903:	b9 d0 41 40 00       	mov    $0x4041d0,%ecx
410908:	e8 b1 f7 ff ff       	call   0x4100be
41090d:	8b 5c 24 10          	mov    0x10(%esp),%ebx
410911:	8b f0                	mov    %eax,%esi
410913:	8b 44 24 24          	mov    0x24(%esp),%eax
410917:	47                   	inc    %edi
410918:	89 7c 24 14          	mov    %edi,0x14(%esp)
41091c:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
410922:	75 0d                	jne    0x410931
410924:	83 ff 64             	cmp    $0x64,%edi
410927:	7d 08                	jge    0x410931
410929:	85 c0                	test   %eax,%eax
41092b:	0f 84 f4 fe ff ff    	je     0x410825
410931:	85 c0                	test   %eax,%eax
410933:	75 02                	jne    0x410937
410935:	8b c6                	mov    %esi,%eax
410937:	8b 8c 24 2c 10 00 00 	mov    0x102c(%esp),%ecx
41093e:	5f                   	pop    %edi
41093f:	5e                   	pop    %esi
410940:	5b                   	pop    %ebx
410941:	33 cc                	xor    %esp,%ecx
410943:	e8 98 2f 00 00       	call   0x4138e0
410948:	8b e5                	mov    %ebp,%esp
41094a:	5d                   	pop    %ebp
41094b:	c3                   	ret
41094c:	8b ff                	mov    %edi,%edi
41094e:	55                   	push   %ebp
41094f:	8b ec                	mov    %esp,%ebp
410951:	56                   	push   %esi
410952:	8b 35 40 a3 41 00    	mov    0x41a340,%esi
410958:	85 f6                	test   %esi,%esi
41095a:	75 1d                	jne    0x410979
41095c:	68 e8 40 40 00       	push   $0x4040e8
410961:	e8 69 66 ff ff       	call   0x406fcf
410966:	50                   	push   %eax
410967:	ff 15 5c b1 41 00    	call   *0x41b15c
41096d:	8b f0                	mov    %eax,%esi
41096f:	89 35 40 a3 41 00    	mov    %esi,0x41a340
410975:	85 f6                	test   %esi,%esi
410977:	74 0d                	je     0x410986
410979:	ff 75 08             	push   0x8(%ebp)
41097c:	8b ce                	mov    %esi,%ecx
41097e:	ff 15 90 b3 41 00    	call   *0x41b390
410984:	ff d6                	call   *%esi
410986:	5e                   	pop    %esi
410987:	5d                   	pop    %ebp
410988:	c2 04 00             	ret    $0x4
41098b:	8b ff                	mov    %edi,%edi
41098d:	55                   	push   %ebp
41098e:	8b ec                	mov    %esp,%ebp
410990:	56                   	push   %esi
410991:	8b 35 2c a3 41 00    	mov    0x41a32c,%esi
410997:	85 f6                	test   %esi,%esi
410999:	75 1d                	jne    0x4109b8
41099b:	68 48 40 40 00       	push   $0x404048
4109a0:	e8 2a 66 ff ff       	call   0x406fcf
4109a5:	50                   	push   %eax
4109a6:	ff 15 5c b1 41 00    	call   *0x41b15c
4109ac:	8b f0                	mov    %eax,%esi
4109ae:	89 35 2c a3 41 00    	mov    %esi,0x41a32c
4109b4:	85 f6                	test   %esi,%esi
4109b6:	74 0d                	je     0x4109c5
4109b8:	ff 75 08             	push   0x8(%ebp)
4109bb:	8b ce                	mov    %esi,%ecx
4109bd:	ff 15 90 b3 41 00    	call   *0x41b390
4109c3:	ff d6                	call   *%esi
4109c5:	5e                   	pop    %esi
4109c6:	5d                   	pop    %ebp
4109c7:	c2 04 00             	ret    $0x4
4109ca:	8b ff                	mov    %edi,%edi
4109cc:	55                   	push   %ebp
4109cd:	8b ec                	mov    %esp,%ebp
4109cf:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
4109d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4109d6:	3b c2                	cmp    %edx,%eax
4109d8:	75 11                	jne    0x4109eb
4109da:	50                   	push   %eax
4109db:	ff 71 10             	push   0x10(%ecx)
4109de:	ff 75 08             	push   0x8(%ebp)
4109e1:	e8 75 37 00 00       	call   0x41415b
4109e6:	83 c4 0c             	add    $0xc,%esp
4109e9:	eb 02                	jmp    0x4109ed
4109eb:	2b c2                	sub    %edx,%eax
4109ed:	5d                   	pop    %ebp
4109ee:	c2 08 00             	ret    $0x8
4109f1:	8b ff                	mov    %edi,%edi
4109f3:	55                   	push   %ebp
4109f4:	8b ec                	mov    %esp,%ebp
4109f6:	51                   	push   %ecx
4109f7:	8b 55 08             	mov    0x8(%ebp),%edx
4109fa:	8d 41 04             	lea    0x4(%ecx),%eax
4109fd:	39 10                	cmp    %edx,(%eax)
4109ff:	74 31                	je     0x410a32
410a01:	89 10                	mov    %edx,(%eax)
410a03:	8a 51 02             	mov    0x2(%ecx),%dl
410a06:	80 fa 01             	cmp    $0x1,%dl
410a09:	75 11                	jne    0x410a1c
410a0b:	66 8b 00             	mov    (%eax),%ax
410a0e:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
410a12:	8d 45 fc             	lea    -0x4(%ebp),%eax
410a15:	6a 02                	push   $0x2
410a17:	50                   	push   %eax
410a18:	6a 02                	push   $0x2
410a1a:	eb 0a                	jmp    0x410a26
410a1c:	80 fa 02             	cmp    $0x2,%dl
410a1f:	75 11                	jne    0x410a32
410a21:	6a 04                	push   $0x4
410a23:	50                   	push   %eax
410a24:	6a 04                	push   $0x4
410a26:	ff 71 0c             	push   0xc(%ecx)
410a29:	ff 15 74 b3 41 00    	call   *0x41b374
410a2f:	83 c4 10             	add    $0x10,%esp
410a32:	c9                   	leave
410a33:	c2 04 00             	ret    $0x4
410a36:	0f b7 01             	movzwl (%ecx),%eax
410a39:	66 85 c0             	test   %ax,%ax
410a3c:	75 07                	jne    0x410a45
410a3e:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
410a42:	83 c0 02             	add    $0x2,%eax
410a45:	8a 49 02             	mov    0x2(%ecx),%cl
410a48:	80 f9 01             	cmp    $0x1,%cl
410a4b:	75 04                	jne    0x410a51
410a4d:	83 c0 02             	add    $0x2,%eax
410a50:	c3                   	ret
410a51:	80 f9 02             	cmp    $0x2,%cl
410a54:	75 03                	jne    0x410a59
410a56:	83 c0 04             	add    $0x4,%eax
410a59:	c3                   	ret
410a5a:	8b ff                	mov    %edi,%edi
410a5c:	55                   	push   %ebp
410a5d:	8b ec                	mov    %esp,%ebp
410a5f:	51                   	push   %ecx
410a60:	51                   	push   %ecx
410a61:	8b 45 08             	mov    0x8(%ebp),%eax
410a64:	53                   	push   %ebx
410a65:	8b d9                	mov    %ecx,%ebx
410a67:	56                   	push   %esi
410a68:	8b 30                	mov    (%eax),%esi
410a6a:	57                   	push   %edi
410a6b:	8a 43 02             	mov    0x2(%ebx),%al
410a6e:	8b 7d 0c             	mov    0xc(%ebp),%edi
410a71:	3c 01                	cmp    $0x1,%al
410a73:	75 26                	jne    0x410a9b
410a75:	8d 46 02             	lea    0x2(%esi),%eax
410a78:	89 45 f8             	mov    %eax,-0x8(%ebp)
410a7b:	3b c7                	cmp    %edi,%eax
410a7d:	77 72                	ja     0x410af1
410a7f:	66 8b 43 04          	mov    0x4(%ebx),%ax
410a83:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
410a87:	8d 45 fc             	lea    -0x4(%ebp),%eax
410a8a:	6a 02                	push   $0x2
410a8c:	50                   	push   %eax
410a8d:	6a 02                	push   $0x2
410a8f:	56                   	push   %esi
410a90:	ff 15 74 b3 41 00    	call   *0x41b374
410a96:	8b 75 f8             	mov    -0x8(%ebp),%esi
410a99:	eb 20                	jmp    0x410abb
410a9b:	3c 02                	cmp    $0x2,%al
410a9d:	75 1f                	jne    0x410abe
410a9f:	8d 46 04             	lea    0x4(%esi),%eax
410aa2:	89 45 f8             	mov    %eax,-0x8(%ebp)
410aa5:	3b c7                	cmp    %edi,%eax
410aa7:	77 48                	ja     0x410af1
410aa9:	6a 04                	push   $0x4
410aab:	8d 43 04             	lea    0x4(%ebx),%eax
410aae:	50                   	push   %eax
410aaf:	6a 04                	push   $0x4
410ab1:	56                   	push   %esi
410ab2:	ff 15 74 b3 41 00    	call   *0x41b374
410ab8:	8b 75 f8             	mov    -0x8(%ebp),%esi
410abb:	83 c4 10             	add    $0x10,%esp
410abe:	66 83 3b 00          	cmpw   $0x0,(%ebx)
410ac2:	75 22                	jne    0x410ae6
410ac4:	8d 46 02             	lea    0x2(%esi),%eax
410ac7:	89 45 f8             	mov    %eax,-0x8(%ebp)
410aca:	3b c7                	cmp    %edi,%eax
410acc:	77 23                	ja     0x410af1
410ace:	6a 02                	push   $0x2
410ad0:	8d 43 08             	lea    0x8(%ebx),%eax
410ad3:	50                   	push   %eax
410ad4:	8b c7                	mov    %edi,%eax
410ad6:	2b c6                	sub    %esi,%eax
410ad8:	50                   	push   %eax
410ad9:	56                   	push   %esi
410ada:	ff 15 74 b3 41 00    	call   *0x41b374
410ae0:	8b 75 f8             	mov    -0x8(%ebp),%esi
410ae3:	83 c4 10             	add    $0x10,%esp
410ae6:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
410aea:	8d 04 31             	lea    (%ecx,%esi,1),%eax
410aed:	3b c7                	cmp    %edi,%eax
410aef:	76 04                	jbe    0x410af5
410af1:	32 c0                	xor    %al,%al
410af3:	eb 1e                	jmp    0x410b13
410af5:	51                   	push   %ecx
410af6:	ff 73 10             	push   0x10(%ebx)
410af9:	2b fe                	sub    %esi,%edi
410afb:	57                   	push   %edi
410afc:	56                   	push   %esi
410afd:	ff 15 74 b3 41 00    	call   *0x41b374
410b03:	8b 4d 08             	mov    0x8(%ebp),%ecx
410b06:	83 c4 10             	add    $0x10,%esp
410b09:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
410b0d:	03 c6                	add    %esi,%eax
410b0f:	89 01                	mov    %eax,(%ecx)
410b11:	b0 01                	mov    $0x1,%al
410b13:	5f                   	pop    %edi
410b14:	5e                   	pop    %esi
410b15:	5b                   	pop    %ebx
410b16:	c9                   	leave
410b17:	c2 08 00             	ret    $0x8
410b1a:	8b ff                	mov    %edi,%edi
410b1c:	55                   	push   %ebp
410b1d:	8b ec                	mov    %esp,%ebp
410b1f:	51                   	push   %ecx
410b20:	8b 45 08             	mov    0x8(%ebp),%eax
410b23:	53                   	push   %ebx
410b24:	56                   	push   %esi
410b25:	8b f1                	mov    %ecx,%esi
410b27:	8b 10                	mov    (%eax),%edx
410b29:	8a 46 02             	mov    0x2(%esi),%al
410b2c:	3c 01                	cmp    $0x1,%al
410b2e:	75 23                	jne    0x410b53
410b30:	8d 5a 02             	lea    0x2(%edx),%ebx
410b33:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
410b36:	77 78                	ja     0x410bb0
410b38:	6a 02                	push   $0x2
410b3a:	52                   	push   %edx
410b3b:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b3e:	89 56 0c             	mov    %edx,0xc(%esi)
410b41:	6a 02                	push   $0x2
410b43:	50                   	push   %eax
410b44:	ff 15 74 b3 41 00    	call   *0x41b374
410b4a:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
410b4e:	89 46 04             	mov    %eax,0x4(%esi)
410b51:	eb 1e                	jmp    0x410b71
410b53:	3c 02                	cmp    $0x2,%al
410b55:	75 1f                	jne    0x410b76
410b57:	8d 5a 04             	lea    0x4(%edx),%ebx
410b5a:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
410b5d:	77 51                	ja     0x410bb0
410b5f:	6a 04                	push   $0x4
410b61:	52                   	push   %edx
410b62:	8d 46 04             	lea    0x4(%esi),%eax
410b65:	89 56 0c             	mov    %edx,0xc(%esi)
410b68:	6a 04                	push   $0x4
410b6a:	50                   	push   %eax
410b6b:	ff 15 74 b3 41 00    	call   *0x41b374
410b71:	8b d3                	mov    %ebx,%edx
410b73:	83 c4 10             	add    $0x10,%esp
410b76:	0f b7 06             	movzwl (%esi),%eax
410b79:	8d 5e 08             	lea    0x8(%esi),%ebx
410b7c:	66 89 03             	mov    %ax,(%ebx)
410b7f:	8b c8                	mov    %eax,%ecx
410b81:	66 85 c0             	test   %ax,%ax
410b84:	75 20                	jne    0x410ba6
410b86:	8d 42 02             	lea    0x2(%edx),%eax
410b89:	89 45 fc             	mov    %eax,-0x4(%ebp)
410b8c:	3b 45 0c             	cmp    0xc(%ebp),%eax
410b8f:	77 1f                	ja     0x410bb0
410b91:	6a 02                	push   $0x2
410b93:	52                   	push   %edx
410b94:	6a 02                	push   $0x2
410b96:	53                   	push   %ebx
410b97:	ff 15 74 b3 41 00    	call   *0x41b374
410b9d:	8b 55 fc             	mov    -0x4(%ebp),%edx
410ba0:	83 c4 10             	add    $0x10,%esp
410ba3:	0f b7 0b             	movzwl (%ebx),%ecx
410ba6:	0f b7 c1             	movzwl %cx,%eax
410ba9:	03 c2                	add    %edx,%eax
410bab:	3b 45 0c             	cmp    0xc(%ebp),%eax