407917:	5d                   	pop    %ebp
407918:	c3                   	ret
407919:	8b ff                	mov    %edi,%edi
40791b:	55                   	push   %ebp
40791c:	8b ec                	mov    %esp,%ebp
40791e:	8b 45 08             	mov    0x8(%ebp),%eax
407921:	56                   	push   %esi
407922:	8b 75 0c             	mov    0xc(%ebp),%esi
407925:	50                   	push   %eax
407926:	c6 46 24 01          	movb   $0x1,0x24(%esi)
40792a:	89 46 20             	mov    %eax,0x20(%esi)
40792d:	e8 81 ff ff ff       	call   0x4078b3
407932:	59                   	pop    %ecx
407933:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
407937:	89 46 18             	mov    %eax,0x18(%esi)
40793a:	5e                   	pop    %esi
40793b:	5d                   	pop    %ebp
40793c:	c3                   	ret
40793d:	e8 af fc ff ff       	call   0x4075f1
407942:	85 c0                	test   %eax,%eax
407944:	75 06                	jne    0x40794c
407946:	b8 20 61 41 00       	mov    $0x416120,%eax
40794b:	c3                   	ret
40794c:	83 c0 14             	add    $0x14,%eax
40794f:	c3                   	ret
407950:	e8 9c fc ff ff       	call   0x4075f1
407955:	85 c0                	test   %eax,%eax
407957:	75 06                	jne    0x40795f
407959:	b8 1c 61 41 00       	mov    $0x41611c,%eax
40795e:	c3                   	ret
40795f:	83 c0 10             	add    $0x10,%eax
407962:	c3                   	ret
407963:	8b ff                	mov    %edi,%edi
407965:	55                   	push   %ebp
407966:	8b ec                	mov    %esp,%ebp
407968:	56                   	push   %esi
407969:	8b 75 08             	mov    0x8(%ebp),%esi
40796c:	85 f6                	test   %esi,%esi
40796e:	74 0c                	je     0x40797c
407970:	6a e0                	push   $0xffffffe0
407972:	33 d2                	xor    %edx,%edx
407974:	58                   	pop    %eax
407975:	f7 f6                	div    %esi
407977:	3b 45 0c             	cmp    0xc(%ebp),%eax
40797a:	72 34                	jb     0x4079b0
40797c:	0f af 75 0c          	imul   0xc(%ebp),%esi
407980:	85 f6                	test   %esi,%esi
407982:	75 17                	jne    0x40799b
407984:	46                   	inc    %esi
407985:	eb 14                	jmp    0x40799b
407987:	e8 bc f0 ff ff       	call   0x406a48
40798c:	85 c0                	test   %eax,%eax
40798e:	74 20                	je     0x4079b0
407990:	56                   	push   %esi
407991:	e8 11 e4 ff ff       	call   0x405da7
407996:	59                   	pop    %ecx
407997:	85 c0                	test   %eax,%eax
407999:	74 15                	je     0x4079b0
40799b:	56                   	push   %esi
40799c:	6a 08                	push   $0x8
40799e:	ff 35 6c 73 41 00    	push   0x41736c
4079a4:	ff 15 a0 f0 40 00    	call   *0x40f0a0
4079aa:	85 c0                	test   %eax,%eax
4079ac:	74 d9                	je     0x407987
4079ae:	eb 0d                	jmp    0x4079bd
4079b0:	e8 9b ff ff ff       	call   0x407950
4079b5:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4079bb:	33 c0                	xor    %eax,%eax
4079bd:	5e                   	pop    %esi
4079be:	5d                   	pop    %ebp
4079bf:	c3                   	ret
4079c0:	8b ff                	mov    %edi,%edi
4079c2:	55                   	push   %ebp
4079c3:	8b ec                	mov    %esp,%ebp
4079c5:	8b 45 0c             	mov    0xc(%ebp),%eax
4079c8:	3b 45 08             	cmp    0x8(%ebp),%eax
4079cb:	76 05                	jbe    0x4079d2
4079cd:	83 c8 ff             	or     $0xffffffff,%eax
4079d0:	5d                   	pop    %ebp
4079d1:	c3                   	ret
4079d2:	1b c0                	sbb    %eax,%eax
4079d4:	f7 d8                	neg    %eax
4079d6:	5d                   	pop    %ebp
4079d7:	c3                   	ret
4079d8:	8b ff                	mov    %edi,%edi
4079da:	55                   	push   %ebp
4079db:	8b ec                	mov    %esp,%ebp
4079dd:	56                   	push   %esi
4079de:	8b 75 08             	mov    0x8(%ebp),%esi
4079e1:	57                   	push   %edi
4079e2:	85 f6                	test   %esi,%esi
4079e4:	75 1a                	jne    0x407a00
4079e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4079e9:	8b ce                	mov    %esi,%ecx
4079eb:	e8 3a 07 00 00       	call   0x40812a
4079f0:	33 ff                	xor    %edi,%edi
4079f2:	89 7e 08             	mov    %edi,0x8(%esi)
4079f5:	89 7e 0c             	mov    %edi,0xc(%esi)
4079f8:	89 7e 10             	mov    %edi,0x10(%esi)
4079fb:	e9 84 00 00 00       	jmp    0x407a84
407a00:	33 ff                	xor    %edi,%edi
407a02:	80 3e 00             	cmpb   $0x0,(%esi)
407a05:	75 1f                	jne    0x407a26
407a07:	8b 75 0c             	mov    0xc(%ebp),%esi
407a0a:	39 7e 0c             	cmp    %edi,0xc(%esi)
407a0d:	75 0d                	jne    0x407a1c
407a0f:	6a 01                	push   $0x1
407a11:	8b ce                	mov    %esi,%ecx
407a13:	e8 68 07 00 00       	call   0x408180
407a18:	85 c0                	test   %eax,%eax
407a1a:	75 6a                	jne    0x407a86
407a1c:	8b 46 08             	mov    0x8(%esi),%eax
407a1f:	33 c9                	xor    %ecx,%ecx
407a21:	66 89 08             	mov    %cx,(%eax)
407a24:	eb d2                	jmp    0x4079f8
407a26:	57                   	push   %edi
407a27:	57                   	push   %edi
407a28:	6a ff                	push   $0xffffffff
407a2a:	56                   	push   %esi
407a2b:	6a 09                	push   $0x9
407a2d:	ff 75 14             	push   0x14(%ebp)
407a30:	e8 4f 13 00 00       	call   0x408d84
407a35:	83 c4 18             	add    $0x18,%esp
407a38:	85 c0                	test   %eax,%eax
407a3a:	75 16                	jne    0x407a52
407a3c:	ff 15 58 f0 40 00    	call   *0x40f058
407a42:	50                   	push   %eax
407a43:	e8 ae fe ff ff       	call   0x4078f6
407a48:	59                   	pop    %ecx
407a49:	e8 02 ff ff ff       	call   0x407950
407a4e:	8b 00                	mov    (%eax),%eax
407a50:	eb 34                	jmp    0x407a86
407a52:	8b 7d 0c             	mov    0xc(%ebp),%edi
407a55:	3b 47 0c             	cmp    0xc(%edi),%eax
407a58:	76 0c                	jbe    0x407a66
407a5a:	50                   	push   %eax
407a5b:	8b cf                	mov    %edi,%ecx
407a5d:	e8 1e 07 00 00       	call   0x408180
407a62:	85 c0                	test   %eax,%eax
407a64:	75 20                	jne    0x407a86
407a66:	ff 77 0c             	push   0xc(%edi)
407a69:	ff 77 08             	push   0x8(%edi)
407a6c:	6a ff                	push   $0xffffffff
407a6e:	56                   	push   %esi
407a6f:	6a 09                	push   $0x9
407a71:	ff 75 14             	push   0x14(%ebp)
407a74:	e8 0b 13 00 00       	call   0x408d84
407a79:	83 c4 18             	add    $0x18,%esp
407a7c:	85 c0                	test   %eax,%eax
407a7e:	74 bc                	je     0x407a3c
407a80:	48                   	dec    %eax
407a81:	89 47 10             	mov    %eax,0x10(%edi)
407a84:	33 c0                	xor    %eax,%eax
407a86:	5f                   	pop    %edi
407a87:	5e                   	pop    %esi
407a88:	5d                   	pop    %ebp
407a89:	c3                   	ret
407a8a:	8b ff                	mov    %edi,%edi
407a8c:	55                   	push   %ebp
407a8d:	8b ec                	mov    %esp,%ebp
407a8f:	53                   	push   %ebx
407a90:	56                   	push   %esi
407a91:	8b 75 08             	mov    0x8(%ebp),%esi
407a94:	85 f6                	test   %esi,%esi
407a96:	75 1c                	jne    0x407ab4
407a98:	8b 75 0c             	mov    0xc(%ebp),%esi
407a9b:	8b ce                	mov    %esi,%ecx
407a9d:	e8 88 06 00 00       	call   0x40812a
407aa2:	33 db                	xor    %ebx,%ebx
407aa4:	89 5e 08             	mov    %ebx,0x8(%esi)
407aa7:	89 5e 0c             	mov    %ebx,0xc(%esi)
407aaa:	89 5e 10             	mov    %ebx,0x10(%esi)
407aad:	33 c0                	xor    %eax,%eax
407aaf:	e9 98 00 00 00       	jmp    0x407b4c
407ab4:	33 db                	xor    %ebx,%ebx
407ab6:	66 39 1e             	cmp    %bx,(%esi)
407ab9:	75 1c                	jne    0x407ad7
407abb:	8b 75 0c             	mov    0xc(%ebp),%esi
407abe:	39 5e 0c             	cmp    %ebx,0xc(%esi)
407ac1:	75 0d                	jne    0x407ad0
407ac3:	6a 01                	push   $0x1
407ac5:	8b ce                	mov    %esi,%ecx
407ac7:	e8 78 06 00 00       	call   0x408144
407acc:	85 c0                	test   %eax,%eax
407ace:	75 7c                	jne    0x407b4c
407ad0:	8b 46 08             	mov    0x8(%esi),%eax
407ad3:	88 18                	mov    %bl,(%eax)
407ad5:	eb d3                	jmp    0x407aaa
407ad7:	53                   	push   %ebx
407ad8:	53                   	push   %ebx
407ad9:	53                   	push   %ebx
407ada:	53                   	push   %ebx
407adb:	6a ff                	push   $0xffffffff
407add:	56                   	push   %esi
407ade:	53                   	push   %ebx
407adf:	ff 75 14             	push   0x14(%ebp)
407ae2:	e8 57 13 00 00       	call   0x408e3e
407ae7:	83 c4 20             	add    $0x20,%esp
407aea:	85 c0                	test   %eax,%eax
407aec:	75 16                	jne    0x407b04
407aee:	ff 15 58 f0 40 00    	call   *0x40f058
407af4:	50                   	push   %eax
407af5:	e8 fc fd ff ff       	call   0x4078f6
407afa:	59                   	pop    %ecx
407afb:	e8 50 fe ff ff       	call   0x407950
407b00:	8b 00                	mov    (%eax),%eax
407b02:	eb 48                	jmp    0x407b4c
407b04:	57                   	push   %edi
407b05:	8b 7d 0c             	mov    0xc(%ebp),%edi
407b08:	3b 47 0c             	cmp    0xc(%edi),%eax
407b0b:	76 0c                	jbe    0x407b19
407b0d:	50                   	push   %eax
407b0e:	8b cf                	mov    %edi,%ecx
407b10:	e8 2f 06 00 00       	call   0x408144
407b15:	85 c0                	test   %eax,%eax
407b17:	75 32                	jne    0x407b4b
407b19:	ff 77 0c             	push   0xc(%edi)
407b1c:	8b 4d 10             	mov    0x10(%ebp),%ecx
407b1f:	ff 77 08             	push   0x8(%edi)
407b22:	56                   	push   %esi
407b23:	ff 75 14             	push   0x14(%ebp)
407b26:	e8 9c 05 00 00       	call   0x4080c7
407b2b:	85 c0                	test   %eax,%eax
407b2d:	75 16                	jne    0x407b45
407b2f:	ff 15 58 f0 40 00    	call   *0x40f058
407b35:	50                   	push   %eax
407b36:	e8 bb fd ff ff       	call   0x4078f6
407b3b:	59                   	pop    %ecx
407b3c:	e8 0f fe ff ff       	call   0x407950
407b41:	8b 00                	mov    (%eax),%eax
407b43:	eb 06                	jmp    0x407b4b
407b45:	48                   	dec    %eax
407b46:	89 47 10             	mov    %eax,0x10(%edi)
407b49:	33 c0                	xor    %eax,%eax
407b4b:	5f                   	pop    %edi
407b4c:	5e                   	pop    %esi
407b4d:	5b                   	pop    %ebx
407b4e:	5d                   	pop    %ebp
407b4f:	c3                   	ret
407b50:	8b ff                	mov    %edi,%edi
407b52:	55                   	push   %ebp
407b53:	8b ec                	mov    %esp,%ebp
407b55:	51                   	push   %ecx
407b56:	ff 75 10             	push   0x10(%ebp)
407b59:	8d 45 ff             	lea    -0x1(%ebp),%eax
407b5c:	50                   	push   %eax
407b5d:	ff 75 0c             	push   0xc(%ebp)
407b60:	ff 75 08             	push   0x8(%ebp)
407b63:	e8 70 fe ff ff       	call   0x4079d8
407b68:	83 c4 10             	add    $0x10,%esp
407b6b:	c9                   	leave
407b6c:	c3                   	ret
407b6d:	8b ff                	mov    %edi,%edi
407b6f:	55                   	push   %ebp
407b70:	8b ec                	mov    %esp,%ebp
407b72:	8b 45 0c             	mov    0xc(%ebp),%eax
407b75:	83 ec 20             	sub    $0x20,%esp
407b78:	56                   	push   %esi
407b79:	85 c0                	test   %eax,%eax
407b7b:	75 16                	jne    0x407b93
407b7d:	e8 ce fd ff ff       	call   0x407950
407b82:	6a 16                	push   $0x16
407b84:	5e                   	pop    %esi
407b85:	89 30                	mov    %esi,(%eax)
407b87:	e8 90 e1 ff ff       	call   0x405d1c
407b8c:	8b c6                	mov    %esi,%eax
407b8e:	e9 47 01 00 00       	jmp    0x407cda
407b93:	83 20 00             	andl   $0x0,(%eax)
407b96:	33 c9                	xor    %ecx,%ecx
407b98:	21 4d e8             	and    %ecx,-0x18(%ebp)
407b9b:	53                   	push   %ebx
407b9c:	8b 5d 08             	mov    0x8(%ebp),%ebx
407b9f:	57                   	push   %edi
407ba0:	33 ff                	xor    %edi,%edi
407ba2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407ba5:	89 7d e0             	mov    %edi,-0x20(%ebp)
407ba8:	8b 03                	mov    (%ebx),%eax
407baa:	85 c0                	test   %eax,%eax
407bac:	74 56                	je     0x407c04
407bae:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407bb1:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
407bb7:	51                   	push   %ecx
407bb8:	50                   	push   %eax
407bb9:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
407bbd:	e8 0e 38 00 00       	call   0x40b3d0
407bc2:	59                   	pop    %ecx
407bc3:	59                   	pop    %ecx
407bc4:	85 c0                	test   %eax,%eax
407bc6:	75 1a                	jne    0x407be2
407bc8:	8d 45 e0             	lea    -0x20(%ebp),%eax
407bcb:	50                   	push   %eax
407bcc:	33 c0                	xor    %eax,%eax
407bce:	50                   	push   %eax
407bcf:	50                   	push   %eax
407bd0:	ff 33                	push   (%ebx)
407bd2:	e8 13 01 00 00       	call   0x407cea
407bd7:	8b f0                	mov    %eax,%esi
407bd9:	83 c4 10             	add    $0x10,%esp
407bdc:	85 f6                	test   %esi,%esi
407bde:	75 74                	jne    0x407c54
407be0:	eb 13                	jmp    0x407bf5
407be2:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407be5:	51                   	push   %ecx
407be6:	50                   	push   %eax
407be7:	ff 33                	push   (%ebx)
407be9:	e8 ad 01 00 00       	call   0x407d9b
407bee:	83 c4 0c             	add    $0xc,%esp
407bf1:	85 c0                	test   %eax,%eax
407bf3:	75 1d                	jne    0x407c12
407bf5:	83 c3 04             	add    $0x4,%ebx
407bf8:	8b 03                	mov    (%ebx),%eax
407bfa:	85 c0                	test   %eax,%eax
407bfc:	75 b0                	jne    0x407bae
407bfe:	8b 7d e0             	mov    -0x20(%ebp),%edi
407c01:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407c04:	8b d9                	mov    %ecx,%ebx
407c06:	8b f7                	mov    %edi,%esi
407c08:	2b df                	sub    %edi,%ebx
407c0a:	c1 fb 02             	sar    $0x2,%ebx
407c0d:	43                   	inc    %ebx
407c0e:	33 c0                	xor    %eax,%eax
407c10:	eb 1f                	jmp    0x407c31
407c12:	8b f0                	mov    %eax,%esi
407c14:	eb 3e                	jmp    0x407c54
407c16:	8b 16                	mov    (%esi),%edx
407c18:	8d 42 01             	lea    0x1(%edx),%eax
407c1b:	89 45 f4             	mov    %eax,-0xc(%ebp)
407c1e:	8a 02                	mov    (%edx),%al
407c20:	42                   	inc    %edx
407c21:	84 c0                	test   %al,%al
407c23:	75 f9                	jne    0x407c1e
407c25:	8b 45 f8             	mov    -0x8(%ebp),%eax
407c28:	2b 55 f4             	sub    -0xc(%ebp),%edx
407c2b:	40                   	inc    %eax
407c2c:	03 c2                	add    %edx,%eax
407c2e:	83 c6 04             	add    $0x4,%esi
407c31:	89 45 f8             	mov    %eax,-0x8(%ebp)
407c34:	3b f1                	cmp    %ecx,%esi
407c36:	75 de                	jne    0x407c16
407c38:	6a 01                	push   $0x1
407c3a:	50                   	push   %eax
407c3b:	53                   	push   %ebx
407c3c:	e8 b4 e6 ff ff       	call   0x4062f5
407c41:	8b f0                	mov    %eax,%esi
407c43:	83 c4 0c             	add    $0xc,%esp
407c46:	85 f6                	test   %esi,%esi
407c48:	75 16                	jne    0x407c60
407c4a:	50                   	push   %eax
407c4b:	e8 29 fc ff ff       	call   0x407879
407c50:	59                   	pop    %ecx